简体   繁体   English

为什么会出现java.lang.AbstractMethodError:oracle.jdbc.driver.OracleConnection错误?

[英]Why do I get java.lang.AbstractMethodError: oracle.jdbc.driver.OracleConnection error?

I already read Why do I get java.lang.AbstractMethodError when trying to load a blob in the db? 我已经阅读了尝试在数据库中加载Blob时为什么会出现java.lang.AbstractMethodError的问题? , downloaded all of the 11g jdbc drivers I could find, and added them as libraries and/or jar files to my NetBeans application. ,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。 I still keep getting the same AbstractMethodError and it is driving me batty! 我仍然不断收到相同的AbstractMethodError,这让我很生气! Any guidance would be greatly appreciated! 任何指导将不胜感激!

try {

    stmt = conn.createStatement();
    inputFileInputStream = new FileInputStream(inputBinaryFile);  

    Blob vBlob = conn.createBlob();
    BufferedImage vGImage=ImageIO.read(name);
    int offset =0;
    OutputStream out = vBlob.setBinaryStream(offset);
    ImageIO.write(vGImage, "JPG", out);
    PreparedStatement stat = conn.prepareStatement("INSERT INTO item VALUES (?,?,?,?,?)");
    stat.setString(1, itemNo);
    stat.setString(2, itemName);
    stat.setBlob(3,vBlob);
    stat.setString(4, invenType);
    stat.setDouble(5, vPrice);
    stat.executeUpdate();

} catch (IOException e) {
    System.out.println("Caught I/O Exception: (Write BLOB value - Put Method).");
    e.printStackTrace();
    throw e;
} catch (SQLException e) {
    System.out.println("Caught SQL Exception: (Write BLOB value - Put Method).");
    System.out.println("SQL:\n" + sqlText);
    e.printStackTrace();
    throw e;
}finally {
    conn.close();
}  

The error message: 错误信息:

Exception in thread "main" java.lang.AbstractMethodError:                        
oracle.jdbc.driver.OracleConnection.createBlob()Ljava/sql/Blob;
    at DatabaseIO.setOracleDBBlob(DatabaseIO.java:115)
    at DatabaseIO.main(DatabaseIO.java:26)

The cause of the problem is incompatible software (jar files). 问题的原因是软件不兼容(jar文件)。

createBlob is a new method (introduced in java 1.6), so older drivers are very unlikely to implement it. createBlob是一种新方法(在Java 1.6中引入),因此较旧的驱动程序不太可能实现它。

Make sure your classpath only contains compatible drivers, and not any earlier versions of the drivers. 确保您的类路径仅包含兼容的驱动程序,而不包含任何较早版本的驱动程序。 (Thanks Jochen) (感谢Jochen)

As others have said this is due to an older Oracle JDBC driver. 正如其他人所说,这是由于Oracle JDBC驱动程序较旧所致。

In my case replacing ojdbc14.jar (Oracle JDBC driver 10.1.0.5.0) with ojdbc16.jar (Oracle JDBC driver 11.2.0.4.0) fixed the problem. 在我的情况下,将ojdbc14.jar (Oracle JDBC驱动程序10.1.0.5.0)替换为ojdbc16.jar (Oracle JDBC驱动程序11.2.0.4.0)可以解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Maven编译和运行时错误java.lang.AbstractMethodError:Tomcat 8 Server上的oracle.jdbc.driver.T4CConnection.isValid(I)Z - Maven compilation and run time error java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z on Tomcat 8 Server 无法将JAVA / Oracle-weblogic.jdbc.wrapper.poolconnection_oracle_jdbc_driver_t4cconnection强制转换为oracle.jdbc.driver.oracleconnection - JAVA/Oracle-weblogic.jdbc.wrapper.poolconnection_oracle_jdbc_driver_t4cconnection cannot be cast to oracle.jdbc.driver.oracleconnection oracle.jdbc.driver.OracleConnection的类强制转换异常 - Class cast exception with oracle.jdbc.driver.OracleConnection 尝试在db中加载blob时,为什么会出现java.lang.AbstractMethodError? - Why do I get java.lang.AbstractMethodError when trying to load a blob in the db? 表类型的调用过程。 创建结构时发生异常:java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.createStruct - Call procedure with a table type. Exception while create Struct: java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.createStruct 当我尝试调用org.apache.activemq.ActiveMQSession.createDurableConsumer时,为什么会得到java.lang.AbstractMethodError - Why do I get java.lang.AbstractMethodError when I try to call org.apache.activemq.ActiveMQSession.createDurableConsumer 为什么我收到 java.lang.AbstractMethodError 错误? - Why I am getting java.lang.AbstractMethodError errors? java.lang.AbstractMethodError - java.lang.AbstractMethodError 错误StatusLogger捕获java.lang.AbstractMethodError - ERROR StatusLogger Caught java.lang.AbstractMethodError java.lang.AbstractMethodError:org.postgresql.jdbc3.Jdbc3Connection.isValid(I)Z - java.lang.AbstractMethodError: org.postgresql.jdbc3.Jdbc3Connection.isValid(I)Z
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM