I've been trying for days now to establish a jdbc resource for mysql in
tomcat 6.0.13
To whom it may correspond:
I get the following error
Unable to get connection, DataSource invalid:
"org.apache.tomcat.dbcp.dbcp.SQLNestedException
: Cannot create JDBC driver of class '' for connect URL 'null'"
I have the driver mysql-connector-java-5.0.6-bin.jar copied to
$CATALINA_HOME/lib
My application web.xml looks like this: (exactly as the example)
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd "
version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>
javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
In
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.htmlthere
is this instruction:
Add this in between the </Context> tag of the examples context and the
> </Host> tag closing the localhost definition. If there is no such tag, you
> can add one as illustrated in the Context<http://tomcat.apache.org/tomcat-6.0-doc/config/context.html>and
> Host <http://tomcat.apache.org/tomcat-6.0-doc/config/host.html>configuration references, and repeated below for your convenience.
In my own opinion this is quite ambiguous. After several search in the mail
repositories. I have this as my server.xml configuration (i deleted the
comments for easy reading)
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="
org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
<Listener className="
org.apache.catalina.core.JasperListener" />
<Listener className="
org.apache.catalina.mbeans.ServerLifecycleListener"
/>
<Listener className="
org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="
org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="
org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="
org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/TestDB" auth="Container" type="
javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="gabo" password="huevos" driverClassName="
com.mysql.jdbc.Driver "
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>
</Context>
</Host>
</Engine>
</Service>
</Server>
In my own opinion the problem is with server.xml, should I add something to
context.xml?
Any comment, hint or tip would be greatly appreciated.
Regards
Gabriel