I agree with edson that this is a configuration problem (specifically:
either the Driver class is not defined (null) or possibly the class-file
containing the Driver class referenced by the JSP datasource is not in
the CLASSPATH being used by the JSP / datasource).
Datasource error indicationg classpath or driver class definition problems:
java.sql.SQLException: Cannot load JDBC driver class 'null'
at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
How to resolve classpath problems depends on the version of Tomcat being
used. Here are references I use when working with Tomcat to help me
sort out such issues. If the driver is properly spcified in the JSP see
the following information:
See the CLASSLOADER how-to for the version you are using at:
http://jakarta.apache.org/tomcat/faq/classnotfound.html
A general post I also find helpful is from::
http://marc.theaimsgroup.com/?l=tomcat-user&m=103843452413727&w=2
<http://marc.theaimsgroup.com/?l=tomcat-user&m=103843452413727&w=2>
and states:
Class loaders are pretty much the wierdest thing about
Java. There are several issues that might be related
to this.
* Tomcat's standard startup script totally ignore your
CLASSPATH variable ..
* Putting JARs in the runtime extensions directory (under
4.0 that means $JAVA_HOME/jre/lib/ext, for 4.1 that
means $CATALINA_HOME/common/endorsed) can cause problems ...
* If the class you are talking about is in the common class
loader (i.e. in common/lib) but the dependent class is
in /WEB-INF/lib, you are guaranteed to get this error.
Hope this helps.
apoorv kulshrestha wrote:
Hi,
I am required to integrate Derby with Tomcat.
I found and followed the following article:
(http://www.ibm.com/developerworks/db2/library/techarticle/dm-0408bader/
<http://www.ibm.com/developerworks/db2/library/techarticle/dm-0408bader/>)
I have been following procedures stated under "Enterprise Scenario"
but it didn't work. Can somebody tell me how to accomplish this
integration?
Any suggestions/help on how to run Derby with Tomcat (or JBoss?)
Thanks in Advance,
Apoorv
----------------------------------------------------------------------------------------------------------
The sample jsp page in the article gave following error:
java.sql.SQLException: Cannot load JDBC driver class 'null'
at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
at org.apache.jsp.HelloCloudscape_jsp._jspService
(HelloCloudscape_jsp.java:165)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:204)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2396)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java
:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext
(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service
(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:484)