[英]ClassCastException when running on Oracle Database JVM
我有以下代码:
OracleDataSource ods = new OracleDataSource();
ods.setURL(thinConnectionString);
OracleConnection conn = (OracleConnection) ods.getConnection();
ArrayDescriptor d = ArrayDescriptor.createDescriptor("MDSYS.RDF_MODELS", conn);
当我从Oracle VM外部运行此代码时,它可以正常工作。 但是,当我使用loadjava
工具将其加载到Oracale数据库JVM上,然后在Oracle中运行它时,出现以下异常:
java.lang.ClassCastException
at oracle.jdbc.driver.PhysicalConnection.putDescriptor(PhysicalConnection.java)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:156)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:123)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:106)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:73)
at XercesTest.Test1(XercesTest.java:46)
at XercesTest.Test(XercesTest.java:171)
是什么导致此问题以及如何解决?
编辑:
当我检查的基础类型的连接对象,我得到的类型oracle.jdbc.driver.T4CConnection
Oracle的VM外运行时,和oracle.jdbc.driver.T2SConnection
在服务器上运行时。
编辑2:[已解决]
该问题是由于jdbc
驱动程序类中的冲突引起的。 loadjava
意外地将依赖文件从ojdbc5.jar
加载到了与Oracle产生loadjava
的数据库中。 一旦我放下这些,一切都会正常。
OracleDataSource和OracleConnection类从何而来? 您是否尝试仅通过使用“标准JDBC类”来获得连接?
Connection conn = DriverManager.getConnection("jdbc:default:connection")
看来您的数据源连接不是Oracle驱动程序期望的。
您是否相应地更改了JDBC URL?
其他操作是否也会失败,或者仅仅是ArrayDescriptor?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.