You can't just plunk stuff any old where and expect it to work. There are some very good reasons why WAR files are the best way to deploy
J2EE apps, but if you prefer to use an exploded WAR, here's some info that may help.
The #1 mistake that almost
everybody makes is in thinking that a web server is basically the same as a file server. A web server is a LOT different than a file server. Just because URL's look like filesystem paths doesn't mean that that's how the appserver will interpret them, and Struts apps are a paticular case in point - if the appserver didn't decode the URL into a Struts request, you'd get no web page at all.
When a web application is deployed to an appserver, an application context is established. The application context is the top "directory" of the URL. In order to serve up this application context, you have to establish a mapping of the context name with a web app. For Tomcat, that would be to a WAR file or (in your case) an exploded war directory.
By default, any subdirectory dropped into the $CATALINA_BASE/webapps directory will have its name registered as a web application context. So in the simplest case, I could deploy $CATALINA_BASE/webapps/myapp and bring up the app at
http://myhost:8080/myapp. If you prefer
not to deploy to $CATALINA_BASE/webapps, you can indicate an alternate location using a web context definition - see the Tomcat docs on the <Context> element. Although you can embed this definition in the Tomcat server.xml file, a better way is to deploy the context as a standalone xml file. In Tomcat4, you'd drop this file into CATALINA_BASE/webpps. In Tomcat5, it goes in CATALINA_BASE/conf/Cataline/locathost.
[ July 12, 2007: Message edited by: Tim Holloway ]