【问题标题】:Issue while creating Oracle ARRAY Type in java using ArrayDescriptor使用 ArrayDescriptor 在 Java 中创建 Oracle ARRAY 类型时出现问题
【发布时间】:2015-11-30 16:38:36
【问题描述】:

如果我直接与 oracle 连接,则代码可以正常工作。
但是如果我通过 Websphere 中配置的数据源连接到数据库,则会收到以下异常:-

java.sql.SQLException:DSRA9122E: com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@21cf8d56 不包装任何 oracle.jdbc.driver.OracleConnection 类型的对象。

引发此异常的代码如下:-

ArrayDescriptor desc = ArrayDescriptor.createDescriptor(PROC_IN_PARAM_ALIAS, jdbcTemplate.getDataSource().getConnection()
                .unwrap(OracleConnection.class));

【问题讨论】:

  • 试试WebSphereNativeJdbcExtractor.doNativeCOnnection or WSCallHelper.getNativeConnection

标签: java spring oracle jdbc websphere


【解决方案1】:

你的错误说明了一切 -

com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@21cf8d56 不包装 oracle.jdbc.driver.OracleConnection 类型的任何对象

createDescriptor() 方法有两个参数

1.存储过程名称 2.oracle.jdbc.driver.OracleConnection类型的对象

ArrayDescriptor.createDescriptor("Proc Name", oracleConnection);

jdbcTemplate.getDataSource().getConnection() 方法不返回 oracle.jdbc.driver.OracleConnection 类型的对象,当您尝试打开它时,它会抛出错误。

您需要执行以下操作

1.在您的配置文件中添加下面提到的条目。

<beans:property name="accessToUnderlyingConnectionAllowed" value="true"/>

2.转换 java.sql.Connectionoracle.jdbc.OracleConnection 并在 createDescriptor() 方法中使用该连接对象来创建您的 oracle.sql.ArrayDescriptor 对象。

【讨论】:

    【解决方案2】:

    如果有人遇到类似问题,请使用 Spring 支持的 WebSphereNativeJdbcExtractor 从 WSJdbcConnection 获取本机连接:-

           //Extract the native JDBC connection from WSJdbcConnection
            WebSphereNativeJdbcExtractor connection = new WebSphereNativeJdbcExtractor();
    
            //Getting the native connection
            Connection con=connection.getNativeConnection(jdbcTemplate.getDataSource().getConnection());
    
            ArrayDescriptor desc = ArrayDescriptor.createDescriptor(PROC_IN_PARAM_ALIAS,
                    con.unwrap(OracleConnection.class));
    

    【讨论】:

      猜你喜欢
      • 2017-10-31
      • 2021-07-06
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多