Para obter oracle.jdbc.driver.LogicalConnection, precisa oracle.jdbc.OracleConnection

Estou tentando conectar-me a um banco de dados Oracle dentro de um aplicativo Java em execução no WebSphere. Eu preciso ser capaz de criar um descritor de matriz para usar em uma chamada para um procedimento.

O código fica assim:

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());

A linha que chamaArrayDescriptor.createDescriptor lança uma exceção de conversão de classe

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)

Percorrendo isso com o depurador, posso ver queconn é definitivamente umoracle.jdbc.driver.LogicalConnection. O problema é que não posso realmente fazer referênciaLogicalConnection no meu código porque essa classe não é pública, então não posso simplesmente fazer algo assim:

arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((LogicalConnection)conn).getWrapper());

.

E isto:

arrayDescriptor = ArrayDescriptor.createDescriptor("t_my_array",((oracle.jdbc.driver.OracleConnection)conn).getWrapper());

também retorna uma exceção de conversão de classe:

java.lang.ClassCastException: oracle.jdbc.driver.LogicalConnection incompatible with oracle.jdbc.driver.OracleConnection

Eu preciso ter umOracleConnection objeto, mas não consigo obter um doLogicalConnection que é devolvido para mim. Alguém já viu isso antes? Sinto que estou perdendo algo realmente óbvio aqui, mas talvez eu só precise de outra xícara de café ...

questionAnswers(1)

yourAnswerToTheQuestion