java_freak
java_freak

Reputation: 21

Java eclipse directory structure and tomcat

I have a java application hosted on tomcat, which has a directory structure like :

webapps/my_aapp/WEB-INF/CLASSES/SERVLETS/xyz.java

webapps/my_aapp/WEB-INF/CLASSES/SERVLETS/xyz.class

so that's how classes are referenced .

Now (I am new to eclipse), it generates a different directory strucutre, in which all .java files are outside the code and I don't know where class files are stored.

The result is that when I upload the files, and compile, I get errors like this:

javac -Xlint servlets/Ajax.java

warning: [path] bad path element "/usr/java/jdbc7.2dev-1.2.jar": no such file or directory

warning: [path] bad path element "/usr/java/mysql-connector-java-3.0.16-ga-bin.jar": no such

What's the best way to understand this java directory path issue? Better yet, how to synchronize this structure?

I want to keep my eclipse directory structure on tomcat.

Upvotes: 2

Views: 3443

Answers (2)

bartosz.r
bartosz.r

Reputation: 455

What kind of project are you using in eclipse? A WEB project? An ANT-build project? MAVEN build? The way it builds classes depends on it. There is not much that I can help you. Because you do not provide enough detailed information with your question, but I will try.

Anyway, you can configure your output dir to be web/WEB-INF/classes (which is not statndard and not recommended, but I am doing it in one old project ;D) if you have it configured as java project.
1. Right click on project,
2. Go to Java Build Path
3. go to source tab, select source folders and select output folder (in my project mypoject/web/WEB-INF/classes ).
4. If you want to run and debug on apache tomcat from withint eclipse using this configuration, you can use eclipse sysdeo tomcat plugin.

Other thing is: You have specified absolute links to libraries (I suppose looking at your error messages), please copy them to web/WEB-INF/lib and change links in project settings. (If you are using maven that you should learn maven, if you are using ant, than just rewrite the part thaht uses these libs). And check if you already has this libs in tomcat/shared or tomcat/lib classes.

Another way is to learn to work with standard way of creating web-projects in eclipse, and add a build and package tasks to your build process (whatever it is make, ant or maven). Then you should deploy your PACKAGED application (let it be *.jar).

My suggestion, please, read "Head First Servlets & JSP by Kathy Sierra, Bert Bates, Bryan Basham" this is great book. It has everything you should know about HTTP, JSP, servlets, tomcat, and web-application directory structure. It will make things much easier for you (at least it worked for me, it really helped me much to understand things, and it is great fun to read).

Upvotes: 0

AlexR
AlexR

Reputation: 115338

Typically eclipse stores all class files under bin directory located under your project near src directory. I personally like name classes more than bin, so I always change it when I am creating project or later using project properties (right click on project -> properties -> build class path.)

Check your disk, I believe your class files are there. Unless you are using some pluging that can change this behavior.

Upvotes: 0

Related Questions