Получение oracle.jdbc.driver.LogicalConnection, необходимо oracle.jdbc.OracleConnection
Я пытаюсь подключиться к базе данных Oracle внутри приложения Java, работающего в WebSphere. Мне нужно иметь возможность создать дескриптор массива для использования в вызове процедуры.
Код выглядит так:
Connection conn=null;
ArrayDescriptor arrayDescriptor;
Connection tmpCon = jdbcTemplate.getDataSource().getConnection();
conn = WSCallHelper.getNativeConnection(tmpCon);
arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",conn);
IDs = new oracle.sql.ARRAY(arrayDescriptor, conn, list.toArray());
Линия, которая вызываетArrayDescriptor.createDescriptor
выдает исключение приведения класса
java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.OracleConnection at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:149) at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:115)
Проходя через это с отладчиком, я вижу, чтоconn
определенноoracle.jdbc.driver.LogicalConnection
, Проблема в том, что я не могу ссылатьсяLogicalConnection
в моем коде, потому что этот класс не является общедоступным, поэтому я не могу просто сделать что-то вроде этого:
arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((LogicalConnection)conn).getWrapper());
.
И это:
arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((oracle.jdbc.driver.OracleConnection)conn).getWrapper());
также возвращает исключение приведения класса:
java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.driver.OracleConnection
Мне нужно иметьOracleConnection
объект, но я не могу получить один изLogicalConnection
это возвращается ко мне. Кто-нибудь когда-нибудь видел это раньше? Я чувствую, что упускаю что-то действительно очевидное здесь, но, возможно, мне просто нужна еще одна чашка кофе ...