Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.AbstractMethodError: oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava/io/Reader;J)V

I'm getting the following exception when trying to insert the contents of a CKEditor (for CMS - Contents Management System) into Oracle database - Oracle 10g.

The field in the Oracle table is of type clob.

java.lang.AbstractMethodError: oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava/io/Reader;J)V

The opposite side is that this exception is not caused when I try to insert the same contents into the database via AJAX using JSON.

I'm using

  • Spring 3.2.0
  • Hibernate 4.2.0.CR1
  • Oracle JDBC Driver version - 10.2.0.5.0
  • JDK - 1.7
  • Oracle 10g

The exception has been causing since I changed Hibernate from 3.2.5 to 4.2.0.CR1

This link says

There are 3 versions of the setCharacterStream() method, two of them were added as part of JDBC 4.0 (Java 1.6). Your JDBC driver may not support them:

This answer recommends to upgrade the JDBC driver but that question is about Oracle 11g that I'm not yet using.

I'm quite not sure. Are JDBC 11.x drivers compatible with Oracle 10g? Once upon a time, I had tried with one but it didn't work properly.

How to solve this exception?


EDIT:

I have just downloaded ojdbc6.jar (previously it was ojdbc14.jar with the driver specified as above) which contains Oracle JDBC Driver version - "11.1.0.7.0-Production".

The exception exception disappeared. Kindly tell me, if this driver version is perfectly compatible with Oracle 10g.

like image 481
Tiny Avatar asked Feb 17 '13 21:02

Tiny


1 Answers

I'm quite not sure. Are JDBC 11.x drivers compatible with Oracle 10g? Once upon a time, I had tried with one but it didn't work properly.

As stated on Oracle JDBC driver 11g documentation http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm

Backward Compatibility

The JDBC drivers are certified to work with the currently supported versions of Oracle Database. For example, the JDBC Thin drivers in Oracle Database 11g Release 2 (11.2) are certified to work with the 10.2.x, 10.1.x, 9.2.x, and 9.0.1.x Oracle Database releases. However, they are not certified to work with older, unsupported database releases, such as 8.0.x and 7.x.

like image 50
gerrytan Avatar answered Nov 01 '22 13:11

gerrytan