Hi everybody,
I'm using tomcat6 and trying to use datasource for mysql connexion (and
hibernate). I have looked to the tomcat 6 official documentation, and in
the $CATALINA_HOME/conf/context.xml, i have declared :
<Context
path="/appWicket"
reloadable="true">
<Resource
name="jdbc/hibernate"
auth="Container"
type="javax.sql.DataSource"
description="DB Connection"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/opensource?autoReconnect=true"
user="root"
password="xxxx"/>
</Context>
In my hibernate.cfg.xml, I have done this (add the first line, to
replace the commented lines):
<session-factory name="appWicketSession">
<property
name="connection.datasource">java:comp/env/jdbc/hibernate</property>
<!--property
name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</proper
ty-->
<!--property
name="hibernate.connection.password">admin</property-->
<!--property
name="hibernate.connection.url">jdbc:mysql://localhost:3306/opensource</
property-->
<!--property
name="hibernate.connection.username">xxxx</property-->
<property
name="bytecode.use_reflection_optimizer">false</property>
<property name="c3p0.max_size">5</property>
<property name="c3p0.min_size">3</property>
<property name="c3p0.timeout">1800</property>
<property name="current_session_context_class">thread</property>
<property
name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="format_sql">true</property>
<property name="show_sql">true</property>
When I try to launch the application, an error appears :
INFO [http-8080-1] (NamingHelper.java:26) - JNDI InitialContext
properties:{}
INFO [http-8080-1] (DatasourceConnectionProvider.java:61) - Using
datasource: java:comp/env/jdbc/hibernate
WARN [http-8080-1] (SettingsFactory.java:117) - Could not obtain
connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC
driver of class '' for connect URL 'null'
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSo
urce.java:1150)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSourc
e.java:880)
at
org.hibernate.connection.DatasourceConnectionProvider.getConnection(Data
sourceConnectionProvider.java:69)
at
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
at
org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1
292)
at com.mycompany.hibernate.HibernateUtil.<clinit>(Unknown
Source)
at com.mycompany.hibernate.GestionBDD.selectQuery(Unknown
Source)
at com.mycompany.middleware.CDataFromBDD.getListDomaine(Unknown
Source)
at com.mycompany.commun.PanelTreeView.<init>(Unknown Source)
at com.mycompany.HomePage.initPanels(Unknown Source)
at com.mycompany.HomePage.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA
ccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons
tructorAccessorImpl.java:27)
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.
java:149)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.
java:58)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget
.newPage(BookmarkablePageRequestTarget.java:262)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget
.getPage(BookmarkablePageRequestTarget.java:283)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget
.processEvents(BookmarkablePageRequestTarget.java:210)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(Ab
stractRequestCycleProcessor.java:91)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java
:1166)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1243)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:363
)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:
194)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:175)
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:2
86)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84
4)
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.NullPointerException
at
sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at
sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at
sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:253)
at
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSo
urce.java:1143)
The log shows that it tries to load the datasource, and at the end of
the exception, we have this :
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
and not com.mysql.jdbc.Driver.
I have put the jdbc driver in $CATALINA_HOME/lib/..
My researches on the net, don't help my to solve the problem, so if you
can help me thank you in advance :).
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is
intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to
read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message
in error, please notify the sender immediately and delete all copies of this message.