Paul,

Several questions:

What version of Tomcat is this?
What platform/OS are you on?
Which JDK version?

Typically this error is from a mis-configuration for the jndi.

Here are my configuration files or parts of for my development box.

First in the server.xml set up a GlobalResource such as this:

  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource name="jdbc/GolfDB" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/GolfDB">
      <parameter>
        <name>validationQuery</name>
        <value>select 1</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:mysql://localhost:3306/golf?autoReconnect=true</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>******</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>******</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>30</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>com.mysql.jdbc.Driver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>

Of course replace the necesary data with your specifics.

Next place this, at the bottom, in your web.xml for the app:

  <resource-ref>
      <description>GolfDB Connection</description>
      <res-ref-name>jdbc/GolfDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

For TC5: Now create a file in the META-INF directory. Name the file
context.xml.
In this file you will need to define the context and the link to the jdbc.
For TC4: Add this to the server.xml

<Context className="org.apache.catalina.core.StandardContext"
cachingAllowed="true"
charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true"
crossContext="true" debug="0" displayName="golf" docBase="golf"
mapperClass="org.apache.catalina.core.StandardContextMapper" path="/golf"
privileged="false" reloadable="false" swallowOutput="false" useNaming="true"
wrapperClass="org.apache.catalina.core.StandardWrapper">
<ResourceLink name="jdbc/GolfDB" global="jdbc/GolfDB"
type="javax.sql.DataSource"/>
</Context>

My application is deployed with the manager from a war file named golf.war
The resource name is jdbc/GolfDB and I am running against a MySQL database.
Make sure all the names match exactly as this will cause many bumps from
banging you head. Adjust other setting to match your needs.

I am on TAO linux, Tomcat 5.0.19 /4.1.29 And JVM 1.4.2_04-b05.

Doug
www.parsonstechnical.com


----- Original Message ----- 
From: "Paul Richards" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, April 13, 2004 3:03 PM
Subject: Tomcat and DataSource JNDI


> Hi,
> I am running Tomcat from the Java Webservices Developer Pack 1.3 and I
> cannot get JNDI working for mysql DataSource objects.  I have googled
> around for my error which is:
>
> java.sql.SQLException: Cannot load JDBC driver class 'null'
> at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.jav
a:529)
> at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:3
29)
>
>
> What I found on google was that this error is not just a problem with
Mysql and that people have experienced it with Oracle and Postgresql also:
>
http://archives.real-time.com/pipermail/tomcat-users/2002-October/081368.html
>
> I tried the suggestion in this last URL of using the exact orderings of
> parameters in the server.xml file as shown in the Tomcat JNDI DataSource
> HowTo.  Unfortunately this has not helped my case.
>
>
> I appreciate that a very similar thread to this is currently running but
> that problem looks different to mine.
>
>
> I have failover code which created a Mysql datasource manually if the
> JNDI fails and the failover code works perfectly.  This makes me sure
> that my CLASSPATHs are correct.
>
>
>
> -- 
> Paul Richards <[EMAIL PROTECTED]>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to