hi...

how to compile and run a servlet application using Tomcat5.5 ...

where to place the class path......and how to run....

After compiling Java file I have placed .class file in ...

C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\ROOT\WEB-INF\classes

and my java file is in...

C:\servlets/HelloWorld.java

and i have accessed like this....
http://localhost:8080/servlet/HelloWorld

i m getting error like this.......

HTTP Status 404 - /servlet/HelloWorld

type Status report
message /servlet/HelloWorld
description The requested resource (/servlet/HelloWorld) is not available.
Apache Tomcat/5.0.25

Can anyone suggest a solution to this.........

Recommended Answers

All 4 Replies

Did you created the web.xml file ? Create a file
and make entries like this

<servlet>
<servlet-name>Name of your servlet</servlet-name>
<display-name>bla bla</display-name>
<servlet-class>Your calss name</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Your servlet name</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

save it in WEB-INF and now start the tomcat.

Access the URL http://localhost:8080/YourServletName

hello sir ......

even though i have created theweb.xml...
its not running..
same error is occuring...

Did you created the web.xml file ? Create a file
and make entries like this

<servlet>
<servlet-name>Name of your servlet</servlet-name>
<display-name>bla bla</display-name>
<servlet-class>Your calss name</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Your servlet name</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

save it in WEB-INF and now start the tomcat.

Access the URL http://localhost:8080/YourServletName

First of all, it doesn't matter what you did with the .java file... Tomcat really cares about the servlet .class file

You have to tell Tomcat what you call your servlet within the web.xml file... and what the .class file is... this need to have the package.classname if you used a package... then in the servlet mapping you say which servlet, by name, you mapping to, and you have to give a "pattern" to match.... if you want to use the helloworld name you need to specify the helloworld name in the url pattern...

Or you can make sure the default servlet context is on, if all you want to do is test for learning the sevlets stuff, then you can place your servlet under the proper location and access them via localhost:8080/servlet/helloworld

the default servlet setting is for testing servlets, if you try to use that url "/servlet/helloworld" but you don't have the .class in the default servlet location, it will not run... basically the default servlet look s at the patch after "/servlet/" and tries to find a .class file with that name... if it finds it, it runs it... if not, it shows the error... BUT the default servlet is disabled by default on Tomcat 5.5 I believe, and you would need to enable it.... You can't use that for your application if you have placed it in any other location... this is well commented in the Tomcat config files...

I appologise if my comments are bit off in terminology, I don't have the Tomcat stuff sitting here to check, and I am in Japan so I have to translate much of this stuff roughly from the Japanese terminology we use daily to the English terms... sometimes the translations are not close enough...

Peace,
Post you web.xml and I will take a look at it...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.