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

Reply via email to