I really doubt the database pooling is causing the issue.  More likely
your deployment is doing something to remove the servlet-api.jar or
duplicating it somewhere.  What do you have in tomcat's lib directory
and in your webapp's WEB-INF/lib directory?

--David

Lucas Vickers wrote:
> Hello,
> I am trying to configure DB pooling in Tomcat 6.  The combination of the
> elements below causes the exception:
> java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
>
> I have followed the directions on
> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
> thoroughly so I am confused.  The only thing I am doing a little different
> is I have placed my db resource in the conf/context.xml , but I have also
> seen the same issue when placed in my META-INF/context.xml
>
> Any ideas will be greatly appreciated!
>
> I think it's the entry in context.xml that causes the issue.
>
> ** conf/context.xml:
>
>     <Resource
>          name="jdbc/tabscorp_tabsdb"
>          auth="Container"
>          type="javax.sql.DataSource"
>          maxActive="100" maxIdle="30" maxWait="10000"
>          username="login" password="pass"
>          driverClassName="com.mysql.jdbc.Driver"
>          logAbandoned="true" removeAbandoned="true"
>          removeAbandonedTimeout="60"
>          url="jdbc:mysql://localhost:3306/mydb?autoReconnect=true"/>
>
> ** webapp/tabs/WEB-INF/web.xml:
>
>     <resource-ref>
>       <description>TABS DB Connection</description>
>       <res-ref-name>jdbc/tabscorp_tabsdb</res-ref-name>
>       <res-type>javax.sql.DataSource</res-type>
>       <res-auth>Container</res-auth>
>     </resource-ref>
>
>
>
> ** Java code:
>                     //use the pool
>                     InitialContext cxt = new InitialContext();
>                     if ( cxt == null ) {
>                          throw new Exception("InitialContext is NULL");
>                     }
>
>                     DataSource ds = (DataSource) cxt.lookup(
> "java:/comp/env/jdbc/tabscorp_tabsdb" );
>                     if ( ds == null ) {
>                          throw new Exception("Data source not found");
>                     }
>
>                     Connection conn = ds.getConnection();
>                     stmt = connection.createStatement();
>
>
> ** Full Exception:
>
> HTTP Status 500 -
>
> type Exception report
>
> message
>
> description The server encountered an internal error () that prevented it
> from fulfilling this request.
>
> exception
>
> javax.servlet.ServletException: Error allocating a servlet instance
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>     java.lang.Thread.run(Thread.java:619)
>
> root cause
>
> java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
>     java.lang.ClassLoader.defineClass1(Native Method)
>     java.lang.ClassLoader.defineClass(ClassLoader.java:621)
>     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>     java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>     java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>     java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>     java.security.AccessController.doPrivileged(Native Method)
>     java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>     java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>     sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>     java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1302)
>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>     java.lang.Thread.run(Thread.java:619)
>
> root cause
>
> java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
>     java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>     java.security.AccessController.doPrivileged(Native Method)
>     java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>     java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>     sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>     java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>     java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>     java.lang.ClassLoader.defineClass1(Native Method)
>     java.lang.ClassLoader.defineClass(ClassLoader.java:621)
>     java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>     java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>     java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>     java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>     java.security.AccessController.doPrivileged(Native Method)
>     java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>     java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>     sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>     java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1302)
>
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>     java.lang.Thread.run(Thread.java:619)
>
> note The full stack trace of the root cause is available in the Apache
> Tomcat/6.0.20 logs.
> Apache Tomcat/6.0.20
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to