To add to what Alan said:

If I create a new Eclipse Dynamic Web Project, and name it MyWebApp during the 
project setup, in the first window it has a drop down for Target Runtime.  That 
should be your installed Tomcat on your desktop development machine; Windows in my 
case.  It starts out with <None> so click the New button next to it and select, 
for example, Apache Tomcat v6.0, and then in the next window use the Browse button to 
navigate to where Tomcat is installed (C:\Program Files\Apache Software 
Foundation\apache-tomcat-v.0.18 for me).  You can leave the rest alone and click 
Finish.

Next in Eclipse, do Window -> Show View -> Servers.  That creates a Servers view 
window (tab) somewhere.  Click on its tab to bring it forward, then right click in the 
Servers window and select New -> Server (strange that we have to do this again, but 
at least it's abbreviated this time), and select Tomcat v6.0 Server (or whatever you 
selected when you created the project).  Then you get the Add and Remove Projects 
window; double click on MyWebApp to move it to the right into Configured projects, and 
click Finish.

As per the DOS tree command my Eclipse project folder/file structure is then

   |   .classpath
   |   .project
   |
   +---.settings
   |       .jsdtscope
   |       org.eclipse.jdt.core.prefs
   |       org.eclipse.jst.common.project.facet.core.prefs
   |       org.eclipse.wst.common.component
   |       org.eclipse.wst.common.project.facet.core.xml
   |       org.eclipse.wst.jsdt.ui.superType.container
   |       org.eclipse.wst.jsdt.ui.superType.name
   |
   +---build
   |   \---classes
   +---src
   \---WebContent
       +---META-INF
       |       MANIFEST.MF
       |
       \---WEB-INF
           |   web.xml
           |
           \---lib

You can ignore .classpath, .project, and .settings.  If you check your project 
into Subversion, I recommend telling it to ignore those files; some people 
prefer checking them in.

I completely ignore the contents of the build folder; whenever you do a clean 
in Eclipse it wipes and removes that folder.  The folder of interest for me is 
the WebContent folder; its layout and contents is what will ultimately be in 
Tomcat as /usr/local/tomcat/webapps/MyWebApp (sorry, switching to Unix parlance 
there).

This means that any jar files your project needs go in WebContent/WEB-INF/lib.

Also, you should create the folder WebContent/WEB-INF/classes and put in it those things 
that need to be "on the classpath", for example, your logging config file 
(e.g., logback.xml or log4j.xml, or log4j.properties if you prefer that confusing 
format), and any other properties files and whatnot.

It's instructive to do as Alan says and do the Eclipse export to war and then 
list the war file with a zip program to see what it's going to look like when 
Tomcat explodes it.

Static jsp files will go directly in the WebContent folder (e.g., index.jsp).  Dynamic 
jsp files will probably go in some subdirectory of WEB-INF; for example, I use Spring and 
I've configured it to look for the "views" in WEB-INF/views/jsp, with even more 
folders in that if I'm using something like Tiles.

Back in Eclipse, in the Servers tab/window, is an entry for Tomcat, and the 
controls for that are at the top of the tab; the green circle arrow starts 
Tomcat and when it's started the red square stops it.  In theory, and perhaps 
in practice, you can edit your .java files and do a compile/build in Eclipse 
and Tomcat will automatically reload them.  I'm superstitious from back in the 
day when that didn't always work and try to remember to stop Tomcat before I do 
a build.  This implies that I have Eclipse configured to not automatically 
build when I do a Save on a file.  If Tomcat does get wedged in Eclipse; for 
example, changes stop showing, you can simply delete the Tomcat instance from 
Eclipse by right clicking on it in the Servers window/tab and selecting Delete, 
then re-add it and add your project to it.

Note that when you start and run Tomcat from within Eclipse it's not deploying 
your project to your installed Tomcat; it's using the installed Tomcat's jar 
files and copying/creating its own Tomcat configuration files into your project 
space and running it all in there.  It's all rather magical and, surprisingly, 
given all the apparent black magic, works quite nicely.

It gets even more black magical if you use Maven and use the m2eclipse Maven 
plugin for Eclipse, but I think it's really worth it to climb that mountain 
because it gives you a great base for a consistent and maintainable project 
structure.


Alan Chaney wrote:
In Eclipse, assuming you have the WTP tools installed, you create a 'Dynamic Web Project.'
This has a folder structure of which the essence is:

MyApp
   src
      com
           mypackage
               Abc.java
   build
      com
         mypackage
            Abc.class
        WebContent
      index.html (or jsp or whatever)
      WEB-INF
         web.xml
         lib
            a.jar
            b.jar

In the above com.mypackage.Abc.java is your web application, and a.jar and b.jar are any runtime libraries that application requires (NOT stuff already in $TOMCAT_HOME/lib)

When you compile and run applications within eclipse it copies the WebContent structure to the webapps directory of its (internal) tomcat, and in WEB-INF creates a folder called classes and copies the contents of the 'build' folder their.

This normally happens automatically every time you start the server inside eclipse.

When you want to deploy the project to an external instance of tomcat (eg a production server) you right-click on the Export.. option in the project context menu and then select WAR (there's a suprise). The war file by default has the project name (in the above expample MyApp.war. This should be copied to the webapps folder of the tomcat instance and if you've stuck to the normal server.xml configuration it should deploy. It will be available at http://the.tomcat.instance:8080/MyApp/index.html (or jspt or whatever)

This is an incredibly brief summary of what is undoubtedly an obscure and complex process for the new-comer (been there.. done that...) and which sadly is not especially well EXPLAINED anywhere that I have found. There are some 'cookbook' type recipes on the web, which are often inconsitent.

Hope that helps

Alan Chaney (a daily eclipse user, but hardly an eclipse guru...)










Markus Schönhaber wrote:
Tom Blank:

The reason why I'm asking is, because I'm using eclipse and its
'dynamic web project' structure.

I'm no Eclipse user either, but AFAIR the folder "Webapps" is part of an
Eclipse Dynamic Web Project. And a project folder is not meant to be
simply copied to Tomcat's appBase (judging from your OP, it seems to me
that's what you've been doing).

You could, for example, export your project to a WAR file and deploy this.
Experienced Eclipse users may know of other/better ways of deployment.
You might consider asking in the appropriate Eclipse mailinglist/newsgroup.

Regards
  mks

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



!DSPAM:4943f4d3100632009820482!



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to