Java 将JDBCConnection转换为OracleConnection时出错
我的spring mvc项目连接到Oracle11g non RAC,在Jboss7.1.0EAP中运行存储过程时,有一段代码失败。 我在JBoss standalone中使用了ojdbc14.jarJava 将JDBCConnection转换为OracleConnection时出错,java,oracle,spring-mvc,jdbc,jboss,Java,Oracle,Spring Mvc,Jdbc,Jboss,我的spring mvc项目连接到Oracle11g non RAC,在Jboss7.1.0EAP中运行存储过程时,有一段代码失败。 我在JBoss standalone中使用了ojdbc14.jar protected ARRAY registerOracleArray(String typeName, Connection connection, Object[] object) throws SQLException { System.out.println("Entered her
protected ARRAY registerOracleArray(String typeName, Connection connection,
Object[] object) throws SQLException {
System.out.println("Entered here");
OracleConnection oracleConnection = null;
if (connection.isWrapperFor(OracleConnection.class)) {
oracleConnection = connection.unwrap(OracleConnection.class);
}
String inTypeName = "TBCAM." + typeName.toUpperCase();
ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor(
inTypeName, oracleConnection);
return new ARRAY(arrayDescriptor, oracleConnection, object);
}
日志中出现错误:
错误消息:-java.util.concurrent.ExecutionException:java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.isWrapperFor(Ljava/lang/Class;)Z
正如您所提到的,您使用的是ojdbc14驱动程序,它非常旧。 找一个最近的,例如这里
不要对ojdbc14中的14感到恼火,它并不比ojdbc6或ojdbc7更新。该数字指的是java版本(因此14表示1.4)。•使用的oracle jar存在兼容性问题。 •另外,从JBOSS7数据源池返回的数据库连接对象的类型为org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8。这不是预期的对象,将其强制转换为Oracle连接对象会引发错误 适用的解决方案: •使用ojdbc7.jar将jar升级到Oracle7
•不是从JBOSS池获取数据库连接,而是从JDBC创建连接。您能分享更多信息吗?一个更大的stacktrace会更好。是的。我正在尝试获取更多信息。您使用的是哪个版本的Oracle JDBC驱动程序?该错误表明您正在使用Java 5或更早版本的变体(例如ojdbc14,用于Java 1.4)。通过使用Ojdbc7.jar并手动获取连接,我能够解决该问题。我猜您仍然可以使用池中的连接并调用WrappedConnectionJDK8.GetUnderlineingConnection()