Probably a classloader
issue. Do you have your driver jar (classes12.jar or zip) in your
WEB-INF/lib directory?
From: Brian
Engel [mailto:Brian.Engel@xxxxxxxxxxxx]
Sent: Thursday, August 18, 2005 2:20
PM
To:
users@xxxxxxxxxx
Subject:
[cinjug-users] Oracle, Tomcat and Connection
Pooling.
Wondering if anyone has encountered
this problem, it is driving crazy.
Basically I trying to setup a
connection pool with Tomcat (4.1.30) using Oracle's data source factory (et al).
The issue is I am getting a
ClassCastException when I attempt to cast the object retrieved via the JNDI
lookup.
InitialContext
context = new InitialContext();
OracleDataSource ds =
(OracleDataSource)
context.lookup(JDBCContext); //blows up
here...
conn=ds.getConnection();
If I look at the class name for the
object returned by the look up it is oracle.jdbc.pool.OracleDataSource. i.e.
System.out.println(context.lookup(JDBCContext).getClass()) shows : class
oracle.jdbc.pool.OracleDataSource
So seemingly the object returned by
the lookup is of type oracle.jdbc.pool.OracleDataSource.
My relevant tomcat config looks like
this.... Any suggestions?
<Resource
name="MyConnPool"
scope="Shareable"
type="oracle.jdbc.pool.OracleDataSource"/>
<ResourceParams
name="MyConnPool">
<parameter>
<name>factory</name>
<value>oracle.jdbc.pool.OracleDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@mydb.com:1521:theSID</value>
</parameter>
<parameter>
<name>user</name>
<value>user1</value>
</parameter>
<parameter>
<name>password</name>
<value>blahblah</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
</ResourceParams>