liberty java.lang.UnsupportedOperationException:未实现getLargeUpdateCount

问题描述 投票:0回答:1

从websphere liberty 16迁移到19.0.0.1我面临以下异常:运行存储过程后关闭连接,我得到以下异常:

EJB在bean“BeanId(UPD_TIMBRI_EAR#UPD_TIMBRI_EJB.jar#StampsSaver,null)”上调用方法“callStoredProcedure”期间抛出了意外(未声明)异常。异常数据:java.lang.UnsupportedOperationException:getLargeUpdateCount未在java.sql.Statement.getLargeUpdateCount(Statement.java:1092)的com.ibm.ws.rsadapter.jdbc.v42.WSJdbc42CallableStatement.getCompatibleUpdateCount(WSJdbc42CallableStatement.java:46)中实现at com.ibm.ws.rsadapter.impl.DatabaseHelper.getUpdateCount(DatabaseHelper.java:336)at com.ibm.ws.rsadapter.com.apm.rs。 .jdbc.WSJdbcCallableStatement.closeWrapper(WSJdbcCallableStatement.java:146)位于com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject)的com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:152) .java:110)com.ibm.ws.rsadapter.jdbc.WSJdbcObject.closeChildWrappers(WSJdbcObject.java:193)at com的com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:150)。 ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:110)at com.ibm.rtv.timbri.ejb.StampsSaver.callStoredProcedure(StampsSaver.jav)一:163).....

码:

Connection stampConn = stampDS.getConnection();
stampConn.setAutoCommit(false);
try {
    CallableStatement pstmt = stampConn.prepareCall("{call GRANTUSERSTAMPS()}");
    if (pstmt.execute()) {
        logger.logp(Level.FINEST, sourceClass, sourceMethod, "StoredProcedure OK");
    } else {
        logger.logp(Level.FINEST, sourceClass, sourceMethod, "StoredProcedure KO");
    }
    ;
    } catch (SQLException e) {
        System.out.println("could not get JDBC connection: " + e);
    } finally {
        stampConn.close();
    }

在自由gitHub似乎从FP 18.0.0.3修复了问题。也许我错了。

java jdbc websphere-liberty
1个回答
1
投票

在等待修复的同时,如果服务器中的应用程序和其他功能都不依赖于JDBC 4.2规范中的新功能,则可能会通过临时切换到jdbc-4.1功能来解决该问题。

为此,请在featureManager元素下的服务器配置(通常是server.xml)中查找jdbc-4.2,并将其替换为jdbc-4.1。

<featureManager>
  <feature>jdbc-4.1</feature>
  ... other features
</featureManager>

如果其他功能暗示了jdbc-4.2功能可能不会显示在这里,在这种情况下你可以简单地尝试添加jdbc-4.1,如上例所示,这将覆盖jdbc-4.2的使用或与之发生冲突,具体取决于所涉及的其他功能的确切要求。如果发生冲突,则无法进行此临时解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.