tags:

views:

54

answers:

2

I am running a web application using Tomcat and Java Servlets, JSP's, etc.

I am aware that in order to use Servlets, it is dependent on the Servlet-api.jar file. Initially I placed this jar file in the

WEB-INF/lib/
directory.

This has worked fine for me for months during the developmental phase.

When we put the application onto the server space we are using, we started seeing wierd problems showing up in the Catalina.out file telling us that there was dependency problems with the servlet-api.jar file.

I am aware that tomcat has this jar file in its container, and that I should remove it from the

WEB-INF/lib/
directory. I have tried this and it does not work.

What do I have to do when I remove this jar file from the local files and allow it to depend on tomcats servlet-api.jar file.

EDIT: This is the exact message pulled from my Catalina.out file that I have been receiving. I added the external JAR to the class path, and It worked, but I am receiving this problem.

May 17, 2010 12:33:31 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/weremo/appservers/apache-tomcat-6.0.26/webapps/WMA-Test/WEB-
INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2.
Offending class: javax/servlet/Servlet.class
+3  A: 

Servlet-api.jar is by default provided by the container environment. So you should not put it in your WEB-INF/LIB folder when you are deploying your application. However, it is required for compiling your Servlets. In case if you are using Eclipse as your IDE, place it in your classpath using Add External JAR files option.

Snehal
In Eclipse it's better to integrate the server in the *Servers* view and associate it with the *Dynamic Web Project*. This way the server's libraries will be automagically taken in the project's buildpath.
BalusC
I will try this and post back an update, thanks to both of you!
CitadelCSAlum
A: 

By default, Tomcat looks up in tomcatRoot/lib/. If by any reason its not finding, then copy the servlet-api.jar file in 'ext' folder under tomcatRoot/lib directory. Tomcat will search the under ext if it doesn't find in lib folder though file exists.

Phani