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>