我正在尝试连接到在WebSphere上运行的Java应用程序内的Oracle数据库。我需要能够创建一个数组描述符,以便在调用过程时使用。
代码如下所示:
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
获得一个返回给我的对象。有没有人见过这个?我觉得我错过了一些非常明显的东西,但也许我只需要另外一杯咖啡......
答案 0 :(得分:2)
修复POM以便10.2.0.1.0版本jar没有部署后,问题似乎得到解决。