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

Reply via email to