Проблема с объектом подключения Apache Commons DBCP, Thread: ClassCastException в org.apache.tomcat.dbcp.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper

Я использую Apache Commons DBCP ( commons-dbcp.jar ) Пул соединений.

Как только я получил соединение из пула он завернут в class org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper .

Мое требование - передать массив строк в хранимую процедуру pl / sql в Oracle.

Вот что я делаю в следующий фрагмент кода:

Connection dbConn = ConnectionManager.ds.getConnection();
//The above statement returns me an connection wrapped in the class
//org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.

org.apache.commons.dbcp.DelegatingConnection del = new org.apache.commons.dbcp.DelegatingConnection(dbConn.getConnection());
con = del.getInnermostDelegate();

cs = con.prepareCall("call SP_NAME(?,?,?,?)");
oracle.sql.ArrayDescriptor arDesc= oracle.sql.ArrayDescriptor.createDescriptor("ARRAY_NAME", (OracleConnection) con);

CallableStatement c_stmt = conn.prepareCall("begin update_message_ids_ota
(:x); end;" );
c_stmt.setArray( 1, array_to_pass );
c_stmt.execute();

При выполнении вышеуказанного кода я получаю следующее исключение:

java.lang.ClassCastException: org.apache.commons.dbcp.PoolingDataSource $ PoolGuardConnectionWrapper не может быть преобразован в oracle.jdbc.OracleConnection в oracle.sql.ArrayDescriptor.createDescriptor

Я пытался найти решение по этому поводу почти на всех сайтах и ​​форумах, но не смог получить удовлетворительного ответа или решения на том же самом.

28
задан Buhake Sindi 27 June 2011 в 07:15
поделиться