Robert,

First of all.., I am using Oracle and Tomcat 4.1.9, so my answer might not
apply to your problem..

I got the same error like yours.. but after I removed all reference to the
datasource in web.xml and
then I declared a ResourceLink like this in my server.xml my program is
running perfectly.

Here is my global datasource in server.xml

<Resource auth="Container" name="jdbc/epantaidbPool" scope="Shareable"
type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/epantaidbPool">
      <parameter>
        <name>username</name>
        <value>epuser</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:oracle:thin:@localhost:1521:epantai</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>zaq12wsx</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>20</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>oracle.jdbc.driver.OracleDriver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>10</value>
      </parameter>
    </ResourceParams>


And then here is the resource link for my application, also in server.xml.


<Context className="org.apache.catalina.core.StandardContext"
cachingAllowed="true"
charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true"
crossContext="false" debug="0"
docBase="C:\jakarta-tomcat-4.1.9\webapps\mediline_upload"
mapperClass="org.apache.catalina.core.StandardContextMapper"
path="/mediline_upload" privileged="false" reloadable="false"
useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
          <ResourceLink global="jdbc/epantaidbPool"
name="jdbc/epantaidbPool" type="javax.sql.DataSource"/>
</Context>


Then I create a singleton class to initialise the datasource, all my codes
then get the connection from this singleton class.

I attach the server.xml, web.xml, ConnCache.java, and DatabaseManager.java
for your reference. Hope that helps..

Regards,
Rosdi.




----- Original Message -----
From: "Robert Dunn" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Monday, September 02, 2002 9:37 AM
Subject: getConnection() returning a NULL JDBC driver


> Hi all,
>
> I am attempting to get a connection to the JDBC entry from the server.xml
> file and keep getting the error "Cannot load JDBC driver class 'null'".
The
> error occurs when I attempt to call "ds.getConnection();". I have placed
all
> of the Interbase JAR files in the Common\Lib directory; Do I need
> to register these with Tomcat somehow?
>
> All of the files/system are detailed below. Any ideas would be helpful.
>
> Platform:
>         WinXP
>         Tomcat 4.1.9 Stand Alone
>
> Java code:
>         Context initCtx = new InitialContext();
>         Context envCtx = (Context) initCtx.lookup("java:comp/env");
>         DataSource ds = (DataSource) envCtx.lookup("jdbc/Transhub");
>         Connection conn = ds.getConnection();
>
> The entry in the web.xml file is as follows:
>         <resource-ref>
>                 <description>Interbase JDBC</description>
>                 <res-ref-name>jdbc/Transhub</res-ref-name>
>                 <res-type>javax.sql.DataSource</res-type>
>                 <res-auth>Container</res-auth>
>         </resource-ref>
>
> Entry from the server.xml file is:
>
>   <Resource name="jdbc/Transhub" auth="Container"
> type="javax.sql.DataSource"
>         description="Resource name for the interbase client connection"/>
>   <ResourceParams name="jdbc/Transhub">
>     <parameter>
>       <name>description</name>
>       <value>Resource Parameters for the Transhub Interbase DB</value>
>     </parameter>
>     <parameter>
>       <name>maxActive</name>
>       <value>8</value>
>     </parameter>
>     <parameter>
>       <name>maxIdle</name>
>       <value>4</value>
>     </parameter>
>     <parameter>
>      <name>user</name>
>      <value>sysdba</value>
>     </parameter>
>     <parameter>
>      <name>password</name>
>      <value>XXXX</value>
>     </parameter>
>     <parameter>
>        <name>driverClassName</name>
>        <value>interbase.interclient.Driver</value>
>     </parameter>
>     <parameter>
>       <name>url</name>
>       <value>jdbc:interbase://localhost/C:/Program Files/Common
Files/Insfin
> Shared/data/iitweb.gdb</value>
>     </parameter>
>   </ResourceParams>
>
> Thanks in advance, Rob :->
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd";>
<web-app/>

Attachment: DatabaseManager.java
Description: Binary data

<Server className="org.apache.catalina.core.StandardServer" debug="0" port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" override="true" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" name="jdbc/epantaidbPool" scope="Shareable" type="javax.sql.DataSource"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase"/>
    <ResourceParams name="jdbc/epantaidbPool">
      <parameter>
        <name>username</name>
        <value>epuser</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:oracle:thin:@localhost:1521:epantai</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>zaq12wsx</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>20</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>oracle.jdbc.driver.OracleDriver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>10</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>
  <Service className="org.apache.catalina.core.StandardService" debug="0" name="Tomcat-Standalone">
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" acceptCount="10" bufferSize="2048" connectionTimeout="20000" debug="0" enableLookups="true" maxProcessors="75" minProcessors="5" port="8080" protocolHandlerClassName="org.apache.coyote.http11.Http11Protocol" proxyPort="0" redirectPort="8443" scheme="http" secure="false" tcpNoDelay="true" useURIValidationHack="false">
      <Factory className="org.apache.catalina.net.DefaultServerSocketFactory"/>
    </Connector>
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" acceptCount="10" bufferSize="2048" connectionTimeout="20000" debug="0" enableLookups="true" maxProcessors="75" minProcessors="5" port="8009" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" proxyPort="0" redirectPort="8443" scheme="http" secure="false" tcpNoDelay="true" useURIValidationHack="false">
      <Factory className="org.apache.catalina.net.DefaultServerSocketFactory"/>
    </Connector>
    <Engine className="org.apache.catalina.core.StandardEngine" debug="0" defaultHost="localhost" mapperClass="org.apache.catalina.core.StandardEngineMapper" name="Standalone">
      <Host className="org.apache.catalina.core.StandardHost" appBase="webapps" autoDeploy="true" configClass="org.apache.catalina.startup.ContextConfig" contextClass="org.apache.catalina.core.StandardContext" debug="0" deployXML="true" errorReportValveClass="org.apache.catalina.valves.ErrorReportValve" liveDeploy="true" mapperClass="org.apache.catalina.core.StandardHostMapper" name="localhost" unpackWARs="true">
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-documentation" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-documentation" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" displayName="Tomcat Manager Application" docBase="../server/webapps/manager" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/manager" privileged="true" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
          <ResourceLink global="UserDatabase" name="users" type="org.apache.catalina.UserDatabase"/>
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\wcva-corporate" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/wcva-corporate" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-upload" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-upload" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" displayName="Cocoon2 Demo" docBase="C:\jakarta-tomcat-4.1.9\webapps\xcva-test" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/xcva-test" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-blank" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-blank" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="true" debug="0" docBase="examples" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/examples" privileged="false" reloadable="true" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
          <Logger className="org.apache.catalina.logger.FileLogger" debug="0" directory="logs" prefix="localhost_examples_log." suffix=".txt" timestamp="true" verbosity="1"/>
          <Parameter name="context.param.name" override="false" value="context.param.value"/>
          <Ejb description="Example EJB Reference" home="com.mycompany.mypackage.AccountHome" name="ejb/Account" remote="com.mycompany.mypackage.Account" type="Entity"/>
          <Ejb home="com.wombat.empl.EmployeeRecordHome" name="ejb/EmplRecord" remote="com.wombat.empl.EmployeeRecord" type="Entity"/>
          <Environment name="maxExemptions" override="true" type="java.lang.Integer" value="15"/>
          <Environment name="foo/name1" override="true" type="java.lang.String" value="value1"/>
          <Environment name="minExemptions" override="true" type="java.lang.Integer" value="1"/>
          <Environment name="name3" override="true" type="java.lang.Integer" value="1"/>
          <Environment name="foo/bar/name2" override="true" type="java.lang.Boolean" value="true"/>
          <Environment name="foo/name4" override="true" type="java.lang.Integer" value="10"/>
          <LocalEjb description="Example Local EJB Reference" home="com.mycompany.mypackage.ProcessOrderHome" local="com.mycompany.mypackage.ProcessOrder" name="ejb/ProcessOrder" type="Session"/>
          <Resource auth="Container" name="mail/Session" scope="Shareable" type="javax.mail.Session"/>
          <Resource auth="SERVLET" name="jdbc/EmployeeAppDb" scope="Shareable" type="javax.sql.DataSource"/>
          <ResourceParams name="mail/Session">
            <parameter>
              <name>mail.smtp.host</name>
              <value>localhost</value>
            </parameter>
          </ResourceParams>
          <ResourceParams name="jdbc/EmployeeAppDb">
            <parameter>
              <name>user</name>
              <value>sa</value>
            </parameter>
            <parameter>
              <name>password</name>
              <value></value>
            </parameter>
            <parameter>
              <name>url</name>
              <value>jdbc:HypersonicSQL:database</value>
            </parameter>
            <parameter>
              <name>driverClassName</name>
              <value>org.hsql.jdbcDriver</value>
            </parameter>
          </ResourceParams>
          <ResourceLink global="simpleValue" name="linkToGlobalResource" type="java.lang.Integer"/>
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-validator" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-validator" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\tomcat-docs" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/tomcat-docs" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-template" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-template" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\webdav" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/webdav" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-example" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-example" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\WCVA" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/WCVA" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
          <ResourceLink global="jdbc/epantaidbPool" name="jdbc/epantaidbPool" type="javax.sql.DataSource"/>
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\struts-exercise-taglib" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/struts-exercise-taglib" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\ROOT" mapperClass="org.apache.catalina.core.StandardContextMapper" path="" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" displayName="Tomcat Administration Application" docBase="../server/webapps/admin" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/admin" privileged="true" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
          <Logger className="org.apache.catalina.logger.FileLogger" debug="0" directory="logs" prefix="localhost_admin_log." suffix=".txt" timestamp="true" verbosity="1"/>
        </Context>
        <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" docBase="C:\jakarta-tomcat-4.1.9\webapps\mediline_upload" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/mediline_upload" privileged="false" reloadable="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
          <ResourceLink global="jdbc/epantaidbPool" name="jdbc/epantaidbPool" type="javax.sql.DataSource"/>
        </Context>
        <Logger className="org.apache.catalina.logger.FileLogger" debug="0" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" verbosity="1"/>
      </Host>
      <Logger className="org.apache.catalina.logger.FileLogger" debug="0" directory="logs" prefix="catalina_log." suffix=".txt" timestamp="true" verbosity="1"/>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase" validate="true"/>
    </Engine>
  </Service>
</Server>

Attachment: ConnCache.java
Description: Binary data

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

Reply via email to