This ClassCastException is a typical Classloader problem.
The oracle.sql.CLOB class has been loaded 2 times by 2 different classloaders.


Most likely you have a Oracle driver in common/lib and also one in WEB-INF/lib. Delete all driver jars except the one in common/lib.

-- Dirk

Chris Nappin wrote:

Hi,

  I've managed to get a little further by adding a "connection.commit()"
call after all SELECT queries (we were only committing UPDATEs and
INSERTs, not reads) which is a nasty workaround but needed since I can't
have a read-only data-source.

However, I'm now getting some *really* odd errors in our Clob-handling
code:

java.sql.Clob realClob = rs.getClob(1);
System.out.println("realClob classname is: " +
realClob.getClass().getName());
if (realClob instanceof oracle.sql.CLOB) {
System.out.println("realClob is a oracle.sql.CLOB");
} else {
System.out.println("realClob is NOT a oracle.sql.CLOB");
}
oracle.sql.CLOB clob = (oracle.sql.CLOB) realClob;


This code prints out a classname of "oracle.sql.CLOB", but instanceof
fails and the last line produces a ClassCastException!

That's really weird and shouldn't be possible in Java (getClass is final
so can't every contradict instanceof)????

Everything works fine using direct connections though, it's only when
using DBCP that I get the above error. Does DBCP use wrapped Connections
and ResultSets? I've tried Oracle JDBC 9.2.0.1.0 and 9.2.0.5.0 (buggy
but matches our dbms version) drivers, both give this error.

Cheers,

Chris Nappin




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to