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/>
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>
ConnCache.java
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
