Moving webapps around

D

DaLoverhino

Hello. I am trying to learn j2ee using Apache Tomcat 5.5.17 under
Windows XP Personal edition. I have the following app which I copied
out of a book:

C:\Program Files\....\webapps\stock

Now, I want to place the "stock" web app in a subdirectory with other
webapps:

C:\Program Files\....\webapps\BookExamples\stock

So I cut and paste the stock directory under BookExamples. Now I use
to type

http://localhost:8080/stock/index.html

I now type

http://localhost:8080/MyApps/stock/index.html

I get the first page up alright, but subsequent links from index.html
do not work. I get "HTTP Status 404 blah blah is not available."

Here's a link from index.html:
<a href="StockList/AnalystForm">See all Analysts</a>

Here's an excerpt from web.xml:

<servlet>
<servlet-name>StockList</servlet-name>
<servlet-class>web.StockListServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>StockList</servlet-name>
<url-pattern>StockList</url-pattern>
</servlet-mapping>

Now, keep in mind, everything works, if I didn't move the app to a
subdirectory. So what do I need to change to make this app work under
a sub directory? I've tried a bunch of things, and none of them work.
I'm hoping someone here can tell me, or at least tell me it's
impossible.

thanks!
 
J

Juha Laiho

DaLoverhino said:
Hello. I am trying to learn j2ee using Apache Tomcat 5.5.17 under
Windows XP Personal edition. I have the following app which I copied
out of a book:

C:\Program Files\....\webapps\stock

Now, I want to place the "stock" web app in a subdirectory with other
webapps:

C:\Program Files\....\webapps\BookExamples\stock
....

at which point web.xml becomes "hidden" from the server;
the server expects to find web.xml at <applicationroot>/WEB-INF/web.xml,
and only one web.xml per application. WIth the way you combine them,
you'd have the files at <applicationroot>/something/WEB-INF/web.xml,
which are more or less ignored by the server.

What you could do is:
- move the applications completely out of webapps/
- create a separate context descriptor (either a separate file,
or a segment in Tomcat server.xml) to point to the new directory
(see http://tomcat.apache.org/tomcat-5.5-doc/config/context.html)
So I cut and paste the stock directory under BookExamples. Now I use
to type

http://localhost:8080/stock/index.html

I now type
http://localhost:8080/MyApps/stock/index.html

.... and with what I proposed above, you'd still refer to the applications
in the "short" way (unless you force something else with the "path" element
of the context descriptors).

However, depending on the quality of your examples, it could be that they
only work where the author expected them to be located (so, perhaps you're
only expected to change the host name, but not the context path).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,020
Latest member
GenesisGai

Latest Threads

Top