Your root cause seems to indicate it's having some trouble possibly with
the url:
Caused by: java.lang.NullPointerException
at java.util.StringTokenizer.<init>(StringTokenizer.java:146)
at com.ibm.db2.jcc.DB2Driver.acceptsURL(DB2Driver.java:245)
at java.sql.DriverManager.getDriver(DriverManager.java:232)
Not having much experience with IBM's db2 driver, I don't have any good
suggestions, but it's something to look at. Also your validation query
looks like it could potentially return a lot of records. The validation
query only needs to be something simple like 'select 1' -- just enough
to fire off some traffic to the server and get a positive response.
Tom Henricksen wrote:
I have an application in Tomcat 5.0.30 that we are trying to get to use
JDBC through JNDI.
I am trying to follow along with
akarta-tomcat-5.0.30/webapps/tomcat-docs/jndi-datasource-examples-howto.
html.
I have setup the context.xml
<Context debug="4"
docBase="C:/Java/eclipse-europa/europa-workspace/bop-med/web"
path="/bop-med" reloadable="true"
workDir="work\Catalina\localhost\bop-med">
<Resource name="jdbc/medical"
type="javax.sql.DataSource"
password="password"
driverClassName="com.ibm.db2.jcc.DB2Driver"
maxIdle="2"
maxWait="5000"
validationQuery="select * from sysibm.SYSDUMMY1"
username="user"
url="jdbc:db2://server:50000/db"
maxActive="4"/>
</Context>
And I have setup the web.xml with
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/medical</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
When I call the following code
initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/medical");
Connection conn = ds.getConnection();
System.out.println("DB Version : "
+
conn.getMetaData().getDatabaseMajorVersion());
conn.close();
I get the following error
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver
of class '' for connect URL 'null'
at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource
.java:780)
at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.ja
va:540)
at
com.advtechgrp.web.servlet.TestConn.processRequest(TestConn.java:37)
at
com.advtechgrp.web.servlet.TestConn.doGet(TestConn.java:20)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:79
9)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57
7)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.NullPointerException
at
java.util.StringTokenizer.<init>(StringTokenizer.java:146)
at com.ibm.db2.jcc.DB2Driver.acceptsURL(DB2Driver.java:245)
at java.sql.DriverManager.getDriver(DriverManager.java:232)
at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource
.java:773)
... 29 more
I have the DB2 jars in the common/lib
Any suggestions?
Thanks,
Tom Henricksen
Consultant
Advanced Technologies Group, Inc.
* Email: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]