Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JDBCConnection转换为OracleConnection时出错_Java_Oracle_Spring Mvc_Jdbc_Jboss - Fatal编程技术网

Java 将JDBCConnection转换为OracleConnection时出错

Java 将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

我的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 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()