i used tomcat 3.2.3 at home for half year and everything was fine. my system administrator put tomcat 4 at our apache server and i can't find the reason for the fact that i don't succeed to run servlets on it! i do everything as i've done earlier,but it just doesn't work. i opened a "classes" directory at "..tomcat-install-directory.."/webaps/ROOT/WEB-INF but the servlets i deploy there do not run. i just get a message that the file were not found . it looks like the path behaves like relative domain for the machine... any suggestions?
Joined: Jul 28, 2001
by the way, the servlets in the examples directory are running ok. come on guys, any ideas?
by "the servlets i deploy " what do you mean? Have you written up a web.xml for this webapp, and all your mappings are in place?
You said: "it looks like the path behaves like relative domain for the machine". I don't understand that I'm afraid.
And what is the *exact* URL you are trying to load, and what is the error message?
Joined: Jul 28, 2001
ok,i'll try to explain it once more (took an english dictionary ) under the "servlets i deploy" i mean the servlets i've written and placed in webapps\ROOT\WEB-INF\classes directory. i didn't make any changes in the web.xml file. actually i used to use tomcat 3.3 and i don't remember myself changing it either. (is there any one-time change i should make there to run servlets?:confused actually i didn't see any mappings to the webapps\examples\WEB-INF\classes but the rexample servlets in it run ok... the url i try to load looks like www.zbc.de/servlet/TheServlet and what i get is apache's 404 error like this:" The requested resource (/servlet/TheServlet) is not available." can you help me now? 10X.
well,may be this will help... i found this in the web.xml file on the "problematic" machine : <!-- The mapping for the default servlet --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- The mapping for the invoker servlet --> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> on the machine where i don't have any problems running tomcat there is no part of 'default servlet' but only 'invoker' one. i don't have a clue if there is any difference between the two. but still,can this make THE difference?
Hi Guys, I guess I am facing similar problems. I created a new web app (test) with proper web.xml file. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Hello, World Application</display-name> <description> This is a simple web application with a source code organization based on the recommendations of the Application Developer's Guide. </description> <servlet> <servlet-name>HelloServlet</servlet-name> <description> abc </description> <servlet-class>HelloServlet</servlet-class> </servlet>
<servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> </web-app> Also added a context entry in server.xml: <Context path="/test" docBase="test" debug="0" reloadable="true"/> Trying to run the simplest server "HelloWorld" but it says (/HelloServlet) is not available.
The ability to ask Tomcat for a servlet not explictly named in the web.xml (no wildcards) I believe was omitted from Catalina. I don't know about modern-day Tomcat 3 versions. I think there are two reasons why it wasn't a good idea in the first place. One is just basic security - you are now limited to only being able to talk to classes that are explicitly authorized. I forget the other. It may be related. I suspect that if you're using an architecture where servlets forward to other servlets they could be abused if they could be invoked directly by a malicious client.
An IDE is no substitute for an Intelligent Developer.