java.sql.SQLException: Cannot load JDBC driver class 'null'.
843859Jan 8 2008 — edited Jan 9 2008I'm a newbie to Java and I have referred to a lot of tutorials on configuring server.xml and read a lot on the forums here, but I'm still stuck with the error. I am using Tomcat 4.1.27 and have been working on this issue for 3 days now :( . Please advice. Below is the server.xml, web.xml and init code from DAO.
Also please tell me if i have remove anything from server.xml that may be redundant.
__Server.xml__
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener
className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0" />
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0" />
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer"
value="30" />
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<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>
<Context path="/SCIMashup" docBase="SCIMashup" debug="5"
reloadable="true" crossContext="true">
<Resource name="jdbc/SCIMashup" auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/SCIMashup">
<parameter>
<name>factory</name>
<value>
org.apache.commons.dbcp.BasicDataSourceFactory
</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>
jdbc:oracle:thin:@10.80.20.188:1521:lema
</value>
</parameter>
<parameter>
<name>username</name>
<value>lema_doms</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</Context>
</GlobalNamingResources>
<Service name="Tomcat-Standalone">
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75" enableLookups="true"
redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout="20000" useURIValidationHack="false"
disableUploadTimeout="true" />
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75" enableLookups="true"
redirectPort="8443" acceptCount="10" debug="0"
connectionTimeout="20000" useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" />
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt" timestamp="true" />
<Realm
className="org.apache.catalina.realm.UserDatabaseRealm" debug="0"
resourceName="UserDatabase" />
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Logger
className="org.apache.catalina.logger.FileLogger" directory="logs"
prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true">
<Logger
className="org.apache.catalina.logger.FileLogger"
prefix="localhost_examples_log." suffix=".txt" timestamp="true" />
<Ejb name="ejb/EmplRecord" type="Entity"
home="com.wombat.empl.EmployeeRecordHome"
remote="com.wombat.empl.EmployeeRecord" />
<Environment name="maxExemptions"
type="java.lang.Integer" value="15" />
<Parameter name="context.param.name"
value="context.param.value" override="false" />
<Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/EmployeeAppDb">
<parameter>
<name>user</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.hsql.jdbcDriver</value>
</parameter>
<parameter>
<name>driverName</name>
<value>jdbc:HypersonicSQL:database</value>
</parameter>
</ResourceParams>
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session" />
<ResourceParams name="mail/Session">
<parameter>
<name>mail.smtp.host</name>
<value>localhost</value>
</parameter>
</ResourceParams>
<ResourceLink name="linkToGlobalResource"
global="simpleValue" type="java.lang.Integer" />
</Context>
</Host>
</Engine>
</Service>
</Server>
__web.xml__
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>SCIMashup</display-name>
<servlet>
<servlet-name>locationservlet</servlet-name>
<servlet-class>com.manh.servlet.LocationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>locationservlet</servlet-name>
<url-pattern>/Add</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>locationservlet</servlet-name>
<url-pattern>/Delete</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>locationservlet</servlet-name>
<url-pattern>/Save</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>locationservlet</servlet-name>
<url-pattern>/listIsNull</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>locationservlet</servlet-name>
<url-pattern>/Launch</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>locationservlet</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SCIMashup</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<security-constraint>
<web-resource-collection>
<web-resource-name>My secure resources</web-resource-name>
<description>
Resources to be placed under security control.
</description>
<url-pattern>/private/*</url-pattern>
<url-pattern>/registered/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>guest</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>WebApp</realm-name>
</login-config>
<security-role>
<description>
The role allowed to access our content
</description>
<role-name>guest</role-name>
</security-role>
</web-app>
__init code in DAO__
InitialContext ic = new InitialContext();
Context envCtx = (Context) ic.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/SCIMashup");
con = ds.getConnection();