I have now tried this on three different machines with the exact same results: I am using the admin tool to create a JNDI data source for a MySQL database. When I try to use the datasource in a servlet, I get the error: Cannot load JDBC driver class 'null'
I am able to retrieve a org.apache.commons.dbcp.BasicDataSource from the JNDI with no problem, but all of its fields are empty, including username, password fields etc, even though these are correctly set in server.xml. I have all the appropriate jar files in the CATALINA_HOME/common/lib folder. I am using Tomcat 4.1.10 on Windows 2000 server, with MySQL 3.23. I followed all the instructions athttp://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html very carefully, each time with the same result. I have tried both the mm.mysql v.2.14 driver and the "new" MySQL Connector/J driver. I attach the server.xml, web.xml and test servlet I am using. Can anyone throw any light on what the problem might be? Thank you. -David __________________________________________________ Do You Yahoo!? Yahoo! Finance - Get real-time stock quotes http://finance.yahoo.com
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<description>Tomcat Test App</description>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>tomtest.TestServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/tomtest.svt</url-pattern>
</servlet-mapping>
<resource-ref>
<description>Local DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
<?xml version='1.0' encoding='utf-8'?>
<Server className="org.apache.catalina.core.StandardServer" port="8005" debug="0" 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 name="jdbc/test" scope="Shareable" type="javax.sql.DataSource" auth="Container"/>
<Resource name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase" auth="Container" description="User database that can be updated and saved"/>
<ResourceParams name="jdbc/test">
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select * from clients limit 1</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>inet</value>
</parameter>
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>password</name>
<value>inet</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" redirectPort="8443" bufferSize="2048" port="8080" connectionTimeout="20000" scheme="http" enableLookups="true" secure="false" protocolHandlerClassName="org.apache.coyote.http11.Http11Protocol" debug="0" proxyPort="0" maxProcessors="75" minProcessors="5" tcpNoDelay="true" acceptCount="10" useURIValidationHack="false">
<Factory className="org.apache.catalina.net.DefaultServerSocketFactory"/>
</Connector>
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" redirectPort="8443" bufferSize="2048" port="8009" connectionTimeout="20000" scheme="http" enableLookups="true" secure="false" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" debug="0" proxyPort="0" maxProcessors="75" minProcessors="5" tcpNoDelay="true" acceptCount="10" useURIValidationHack="false">
<Factory className="org.apache.catalina.net.DefaultServerSocketFactory"/>
</Connector>
<Engine className="org.apache.catalina.core.StandardEngine" mapperClass="org.apache.catalina.core.StandardEngineMapper" debug="0" defaultHost="localhost" name="Standalone">
<Host className="org.apache.catalina.core.StandardHost" appBase="webapps" liveDeploy="true" mapperClass="org.apache.catalina.core.StandardHostMapper" autoDeploy="true" configClass="org.apache.catalina.startup.ContextConfig" errorReportValveClass="org.apache.catalina.valves.ErrorReportValve" debug="0" deployXML="true" contextClass="org.apache.catalina.core.StandardContext" unpackWARs="true" name="localhost">
<Context className="org.apache.catalina.core.StandardContext" crossContext="true" reloadable="true" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="examples" cookies="true" path="/examples" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
<Logger className="org.apache.catalina.logger.FileLogger" debug="0" verbosity="1" prefix="localhost_examples_log." directory="logs" timestamp="true" suffix=".txt"/>
<Parameter name="context.param.name" override="false" value="context.param.value"/>
<Ejb name="ejb/Account" type="Entity" description="Example EJB Reference" remote="com.mycompany.mypackage.Account" home="com.mycompany.mypackage.AccountHome"/>
<Ejb name="ejb/EmplRecord" type="Entity" remote="com.wombat.empl.EmployeeRecord" home="com.wombat.empl.EmployeeRecordHome"/>
<Environment name="maxExemptions" override="true" type="java.lang.Integer" value="15"/>
<Environment name="minExemptions" override="true" type="java.lang.Integer" value="1"/>
<Environment name="foo/bar/name2" override="true" type="java.lang.Boolean" value="true"/>
<Environment name="name3" override="true" type="java.lang.Integer" value="1"/>
<Environment name="foo/name4" override="true" type="java.lang.Integer" value="10"/>
<Environment name="foo/name1" override="true" type="java.lang.String" value="value1"/>
<LocalEjb name="ejb/ProcessOrder" local="com.mycompany.mypackage.ProcessOrder" type="Session" description="Example Local EJB Reference" home="com.mycompany.mypackage.ProcessOrderHome"/>
<Resource name="mail/Session" scope="Shareable" type="javax.mail.Session" auth="Container"/>
<Resource name="jdbc/EmployeeAppDb" scope="Shareable" type="javax.sql.DataSource" auth="SERVLET"/>
<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>driverName</name>
<value>jdbc:HypersonicSQL:database</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.hsql.jdbcDriver</value>
</parameter>
</ResourceParams>
<ResourceLink name="linkToGlobalResource" type="java.lang.Integer" global="simpleValue"/>
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="C:\Program Files\Apache Group\Tomcat 4.1\webapps\webdav" cookies="true" path="/webdav" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="C:\Program Files\Apache Group\Tomcat 4.1\webapps\tomcat-docs" cookies="true" path="/tomcat-docs" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="J:\worklayer" cookies="true" path="/worklayer" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="C:\Program Files\Apache Group\Tomcat 4.1\webapps\tomtest" cookies="true" path="/tomtest" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
<Resource name="jdbc/test" scope="Shareable" type="javax.sql.DataSource" auth="Container" description="Local DB Connection"/>
<Resource name="jdbc/jobsheet" scope="Shareable" type="javax.sql.DataSource" auth="Container" description="DB Connection"/>
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="true" displayName="Tomcat Manager Application" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="../server/webapps/manager" cookies="true" path="/manager" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
<ResourceLink name="users" type="org.apache.catalina.UserDatabase" global="UserDatabase"/>
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="true" displayName="Tomcat Administration Application" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="../server/webapps/admin" cookies="true" path="/admin" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
<Logger className="org.apache.catalina.logger.FileLogger" debug="0" verbosity="1" prefix="localhost_admin_log." directory="logs" timestamp="true" suffix=".txt"/>
</Context>
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" swallowOutput="false" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="C:\Program Files\Apache Group\Tomcat 4.1\webapps\ROOT" cookies="true" path="" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
</Context>
<Logger className="org.apache.catalina.logger.FileLogger" debug="0" verbosity="1" prefix="localhost_log." directory="logs" timestamp="true" suffix=".txt"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" debug="0" verbosity="1" prefix="catalina_log." directory="logs" timestamp="true" suffix=".txt"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase" validate="true"/>
</Engine>
</Service>
</Server>
TestServlet.java
Description: TestServlet.java
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
