>
>> <Context debug="5">
>  <Resource
>    name="jdbc/CSRapp"
>    description="DB Connection"
>    type="javax.sql.DataSource"
>    scope="shareable"
>
>    driverClassName="com.mysql.jdbc.Driver"
>    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
>    url="jdbc:mysql://localhost:3306/CSRapp"
>    username="CSRapp"
>    password="CSRapp"
>    auth="Container"
>
>    validationQuery="select 1"
>    maxActive="10"    maxWait="5000"
>    maxIdle="4" />
> </Context> 
This configuration is using a tomcat managed database pool.  Put your
mysql jar file in tomcat's lib folder and you'll see the error go away.

--David


Bob Marcum wrote:
> Thank you all for your help.
>
> Caldarale, Charles R wrote:
>>> From: Bob Marcum [mailto:bmar...@bcscomputers.com]
>>> Subject: Re: Seeking the right solution to
>>> java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
>>>
>>> I did a "find" scan of my system, looking for other copies of
>>> both hibernate3.jar and mysql-connector-java-3.1.10-bin.jar to
>>> confirm there are no other copies which could be in classpath.
>>
>>
>> Your find might have been a bit too specific, since you mustn't have
>> any jars for any version of Hibernate or MySQL in your webapp's
>> classloader branch, other than in WEB-INF/lib.
>>
> I did a find on mysql-connector-java-*.jar.  Should have caught
> everything.
>
>>
>>> There is a link to the mysql driver jar in hibernate-3.0's
>>> own lib directory.
>>
>>
>> What do you mean by "hibernate-3.0's own lib directory"?  Is this a
>> link somehow inside the Hibernate jar?  Are the Hibernate classes
>> somewhere else besides the jar in WEB-INF/lib?
>>
>
> No.  I am afraid I have confused the issue.  There is a lib directory
> in the hibernate distribution.  One is instructed by the dist readme
> to copy your jdbc driver into that lib ... but it is only used when
> running the tests to confiem hibernate works okay.  I have explored
> this a little more since my last post.
>
>>
>>> When I re-run the application, I am right back where I was. I
>>> get "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver".
>>
>>
>> What's in the <Context> element for your webapp?  Since you're using
>> C3P0 pooling, you should not have a <Resource> element inside the
>> <Context>, otherwise Tomcat will also attempt to do pooling for the
>> driver.
>>
> I am using a context.xml which has the following in it:
>
>> <Context debug="5">
>  <Resource
>    name="jdbc/CSRapp"
>    description="DB Connection"
>    type="javax.sql.DataSource"
>    scope="shareable"
>
>    driverClassName="com.mysql.jdbc.Driver"
>    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
>    url="jdbc:mysql://localhost:3306/CSRapp"
>    username="CSRapp"
>    password="CSRapp"
>    auth="Container"
>
>    validationQuery="select 1"
>    maxActive="10"    maxWait="5000"
>    maxIdle="4" />
> </Context>
>
> This is as recommended by tomcat documentation, as I understand that
> documentation.
>
>>> My webapp cannot see the mysql driver jar, although it clearly sees
>>> the hibernate jar.
>>
>>
>> Post the complete stack trace for the CNFE.
>>
>
> Here is the complete stack trace from catalina.log.  I have the
> debugger set to spit out a lot of data:
>
> serviceProviderRecord = [Ljava.lang.String;@13c6a22
> 16:38:33,723  INFO Environment:464 - Hibernate 3.0.5
> 16:38:33,734  INFO Environment:477 - hibernate.properties not found
> 16:38:33,741  INFO Environment:510 - using CGLIB reflection optimizer
> 16:38:33,753  INFO Environment:540 - using JDK 1.4 java.sql.Timestamp
> handling
> 16:38:34,321  INFO Configuration:1110 - configuring from resource:
> /hibernate.cfg.xml
> 16:38:34,323  INFO Configuration:1081 - Configuration resource:
> /hibernate.cfg.xml
> 16:38:34,658  INFO Configuration:444 - Mapping resource:
> org/bcs/server/utils/ServiceProvider.hbm.xml
> 16:38:35,018  INFO HbmBinder:260 - Mapping class:
> org.bcs.server.utils.ServiceProvider -> ServiceProvider
> 16:38:35,133  WARN HbmBinder:422 - Could not perform validation checks
> for component as the class org.bcs.server.utils.ServiceProvider was
> not found
> 16:38:35,145  INFO Configuration:1222 - Configured SessionFactory: null
> 16:38:35,149  INFO Configuration:875 - processing extends queue
> 16:38:35,153  INFO Configuration:879 - processing collection mappings
> 16:38:35,155  INFO Configuration:888 - processing association property
> references
> 16:38:35,156  INFO Configuration:917 - processing foreign key constraints
> 16:38:36,141  INFO NamingHelper:26 - JNDI InitialContext properties:{}
> 16:38:36,147  INFO DatasourceConnectionProvider:51 - Using datasource:
> java:comp/env/jdbc/CSRapp
> 16:38:36,166  WARN SettingsFactory:103 - Could not obtain connection
> metadata
> org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC
> driver class 'com.mysql.jdbc.Driver'
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
>
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
>
>        at
> org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:59)
>
>        at
> org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
>        at
> org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
>        at
> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
>
>        at org.bcs.server.db.HibernateUtil.<clinit>(Unknown Source)
>        at org.bcs.server.db.ModelFacade.findAllLikeThis(Unknown Source)
>        at
> org.bcs.server.SelectionSearchServiceImpl.findAllLikeThis(Unknown Source)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>        at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:163)
>
>        at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:85)
>
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>
>        at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>
>        at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>        at java.lang.Class.forName0(Native Method)
>        at java.lang.Class.forName(Class.java:169)
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
>
>        ... 29 more
> 16:38:36,247  INFO Dialect:92 - Using dialect:
> org.hibernate.dialect.MySQLDialect
> 16:38:36,270  INFO TransactionFactoryFactory:31 - Using default
> transaction strategy (direct JDBC transactions)
> 16:38:36,284  INFO TransactionManagerLookupFactory:33 - No
> TransactionManagerLookup configured (in JTA environment, use of
> read-write or transactional second-level cache is not recommended)
> 16:38:36,293  INFO SettingsFactory:125 - Automatic flush during
> beforeCompletion(): disabled
> 16:38:36,295  INFO SettingsFactory:129 - Automatic session close at
> end of transaction: disabled
> 16:38:36,300  INFO SettingsFactory:144 - Scrollable result sets: disabled
> 16:38:36,302  INFO SettingsFactory:152 - JDBC3 getGeneratedKeys():
> disabled
> 16:38:36,303  INFO SettingsFactory:160 - Connection release mode: null
> 16:38:36,309  INFO SettingsFactory:184 - Maximum outer join fetch
> depth: 2
> 16:38:36,311  INFO SettingsFactory:187 - Default batch fetch size: 1
> 16:38:36,312  INFO SettingsFactory:191 - Generate SQL with comments:
> disabled
> 16:38:36,314  INFO SettingsFactory:195 - Order SQL updates by primary
> key: disabled
> 16:38:36,315  INFO SettingsFactory:334 - Query translator:
> org.hibernate.hql.ast.ASTQueryTranslatorFactory
> 16:38:36,331  INFO ASTQueryTranslatorFactory:21 - Using
> ASTQueryTranslatorFactory
> 16:38:36,338  INFO SettingsFactory:203 - Query language substitutions: {}
> 16:38:36,342  INFO SettingsFactory:209 - Second-level cache: enabled
> 16:38:36,346  INFO SettingsFactory:213 - Query cache: disabled
> 16:38:36,354  INFO SettingsFactory:321 - Cache provider:
> org.hibernate.cache.EhCacheProvider
> 16:38:36,381  INFO SettingsFactory:228 - Optimize cache for minimal
> puts: disabled
> 16:38:36,394  INFO SettingsFactory:237 - Structured second-level cache
> entries: disabled
> 16:38:36,430  INFO SettingsFactory:261 - Statistics: disabled
> 16:38:36,432  INFO SettingsFactory:265 - Deleted entity synthetic
> identifier rollback: disabled
> 16:38:36,437  INFO SettingsFactory:279 - Default entity-mode: pojo
> 16:38:36,771  INFO SessionFactoryImpl:152 - building session factory
> 16:38:36,804  WARN Configurator:126 - No configuration found.
> Configuring ehcache from ehcache-failsafe.xml found in the classpath:
> jar:file:/usr/local/Apache.org/Tomcat/6.0.18/webapps/CSRapp/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml
>
> 16:38:37,660  INFO SessionFactoryObjectFactory:82 - Not binding
> factory to JNDI, no JNDI name configured
> 16:38:37,662  INFO SessionFactoryImpl:379 - Checking 0 named queries
> 16:38:37,803 DEBUG ConnectionManager:296 - opening JDBC connection
> 16:38:37,820  WARN JDBCExceptionReporter:71 - SQL Error: 0, SQLState:
> null
> 16:38:37,822 ERROR JDBCExceptionReporter:72 - Cannot load JDBC driver
> class 'com.mysql.jdbc.Driver'
> org.hibernate.exception.GenericJDBCException: Cannot open connection
>        at
> org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
>
>        at
> org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
>
>        at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>
>        at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
>
>        at
> org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:301)
>
>        at
> org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110)
>
>        at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137)
>        at
> org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:49)
>        at
> org.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:24)
>
>        at
> org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:271)
>        at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1079)
>        at org.bcs.server.db.ModelFacade.findAllLikeThis(Unknown Source)
>        at
> org.bcs.server.SelectionSearchServiceImpl.findAllLikeThis(Unknown Source)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>        at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:163)
>
>        at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:85)
>
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>
>        at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>
>        at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load
> JDBC driver class 'com.mysql.jdbc.Driver'
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
>
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
>
>        at
> org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:59)
>
>        at
> org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298)
>
>        ... 29 more
> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>        at java.lang.Class.forName0(Native Method)
>        at java.lang.Class.forName(Class.java:169)
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
>
>        ... 32 more
> org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC
> driver class 'com.mysql.jdbc.Driver'
> 16:39:27,188 DEBUG ConnectionManager:369 - running Session.finalize()
>
>
>
> Here is the complete stack trace from localhost ... log:
>
> Jul 20, 2009 4:38:37 PM org.apache.catalina.core.ApplicationContext log
> SEVERE: Exception while dispatching incoming RPC call
> com.google.gwt.user.server.rpc.UnexpectedException: Service method
> 'public abstract java.lang.String[][]
> org.bcs.client.gui.SelectionSearchService.findAllLikeThis(java.lang.String[])'
> threw an unexpected exception:
> org.hibernate.exception.GenericJDBCException: Cannot open connection
>        at
> com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360)
>        at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546)
>        at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:163)
>
>        at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:85)
>
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>
>        at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>
>        at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: org.hibernate.exception.GenericJDBCException: Cannot open
> connection
>        at
> org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
>
>        at
> org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
>
>        at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>
>        at
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
>
>        at
> org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:301)
>
>        at
> org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110)
>
>        at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:137)
>        at
> org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:49)
>        at
> org.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:24)
>
>        at
> org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:271)
>        at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1079)
>        at org.bcs.server.db.ModelFacade.findAllLikeThis(Unknown Source)
>        at
> org.bcs.server.SelectionSearchServiceImpl.findAllLikeThis(Unknown Source)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
>        ... 16 more
> Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load
> JDBC driver class 'com.mysql.jdbc.Driver'
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
>
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
>
>        at
> org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:59)
>
>        at
> org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298)
>
>        ... 29 more
> Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>        at java.lang.Class.forName0(Native Method)
>        at java.lang.Class.forName(Class.java:169)
>        at
> org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
>
>        ... 32 more
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>


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

Reply via email to