New app on Tomcat 5.0.19

I am converting a project containg JSP and servlets from Tomcat 3.3 to 5.0.19
I have moved my web application under the webapps directory and the initial web page is found and comes up ok but when the first servlet comes up I get an error from Tomcat
HTTP Status 404 /insidezos20/servlet/checkuser
Description: The rquested resource (/insidezos20/servlet/checkuser) is not available


Any configuration in the web.xml or server.xml

Any help please ???

pouliAsked:
Who is Participating?
 
rrzConnect With a Mentor Commented:
Did you change the header  in your context's web.xml   ?  

In Tomcat 3, I think the Invoker servlet was active.
But in Tomcat 5  the Invoker servlet is commented out.  
To uncomment it, go to  jakarta-tomcat-5.0.19\conf\web.xml  
Uncomment both  <servlet>  and  <servlet-mapping>  for the invoker.
rrz
0
 
CEHJCommented:
Make sure you've moved ALL your files
0
 
pouliAuthor Commented:
yes,

I have moved them. What else could be ?
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
girionisCommented:
I guess you have also moved the web.xml file. Can you make sure that the checkuser servlet (I guess it;s a servlet) is defined in your web.xml file? Also in Tomcat 5.0.19 you do not need the servlet.xml file.
0
 
pouliAuthor Commented:
   <servlet-mapping>
        <servlet-name>checkuser</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>


It is in the web.xml file
0
 
girionisCommented:
Do you also have

<servlet>
    <servlet-name>...</servlet-name>
    <servlet-class>...</servlet-class>
</servlet>

tags?
0
 
pouliAuthor Commented:
It seems that no.

Why it was working with the old version though?
0
 
girionisCommented:
Not sure, different settings probably. It's a very long time since I last used Tomcat 3.3, I do not remember details but I *think* you didn't have to specify the <servlet-name> and <servlet-class> in your web.xml. It could find the servlets as long as they were in the WEB-INF/classes folder.
0
 
CEHJCommented:
Isn't it that it can find the web apps if they're in the webapps dir and through the app archive  find the servlets?
0
 
pouliAuthor Commented:
CEHJ sorry could you explain better what you mean??
0
 
CEHJCommented:
That's really a semi-rhetorical(?) question to girionis. Generally there seems to be less config to worry about
0
 
girionisCommented:
> Isn't it that it can find the web apps if they're in the webapps dir and through the app archive  find the servlets?

It's weird what's going on. AFAIR Tomcat 3.3 needed to servlet.xml file in order to find the web application but could implicitly find a servlet under the web app. On the other hand Tomcat 5.0 (I think this feature was availble after the 4.0 version) does not need a servlet.xml file (can find all the web-apps automatically as long as they are under the web-apps folder) to load the web-app but it does need to explicitly define a servlet in the web.xml file.
0
 
CEHJCommented:
Well i think it's a general move in the direction of individual config as opposed to global, which i think is probably a good thing, although it feels a bit rich when you hear them recommending that library jars should really go in each web app. i.e. if you have x.jar used by 4 web apps, you'll have 4 copies of x.jar
0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> /insidezos20/servlet/checkuser

>> But in Tomcat 5  the Invoker servlet is commented out.  

Correct, the invoker Servlet is no longer there. It was already known a long time back that it will be removed. It must have a mapping in web.xml. The invoker Servlet feature was generally used for testing purposes (while development - as a short-hand way for immediate-testing), but now, its no longer there.
0
 
pouliAuthor Commented:
rrz@871311

Thank your answer was correct.

Thank everyone though for your interest.

Talk u later
0
 
rrzCommented:
pouli, thanks for the points, but I must agree with mayankeagle  

>The invoker Servlet feature was generally used for testing purposes    

and because it was a security risk, was  phased out.    rrz
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.