java - 使用 postgresql 8.4 jdbc4 和 JBoss 5.1GA 调用 createArrayOf 时出现 AbstractMethodError

标签 java jdbc jboss

使用此方法时

public List<Field> getFieldWithoutId(List<Integer> idSections) throws Exception {
    try {
        Connection conn = this.getConnection();
        Array arraySections = conn.createArrayOf("int4", idSections.toArray());
        this.log.info("Recupero field");
        List<Field> fields = this.getJdbcTemplate().query(getFieldWithoutIdQuery, new Object[] {arraySections},ParameterizedBeanPropertyRowMapper.newInstance(Field.class));
        /*if (!conn.isClosed())
            conn.close();
        */
        releaseConnection(conn);
        return fields;
    } catch (Exception e) {
        e.printStackTrace();
        throw new Exception("Errore.");
    }
}

我在 conn.createArrayOf("int4", idSections.toArray()); 处遇到异常。

异常(exception)情况是:

javax.ejb.EJBException : Unexpected Error
java.lang.AbstractMethodError: org.jboss.resource.adapter.jdbc.jdk5.WrappedConnectionJDK5.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array;

postgresql-8.4-701.jdbc4.jar 位于 jboss/server/all/lib 目录中。应用程序是基于 spring 的 ejb3。

当使用相同的设置在本地工作时,一切都很好。这仅发生在预生产环境中。唯一的区别是本地我让 jboss 在默认模式下运行,在其他情况下,所有配置中有 2 个 jboss。我无法找出这个错误的原因。有人可以帮我吗?

最佳答案

java.lang.AbstractMethodError

这意味着当前运行时类路径中的某些 API 中声明的抽象方法在当前运行时类路径中的具体实现中缺失。

org.jboss.resource.adapter.jdbc.jdk5.WrappedConnectionJDK5.createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array;

鉴于它在本地环境中运行良好,但在预生产环境中运行不佳,这意味着环境正在使用不同的 JBoss 服务器版本和/或部署的 Web 应用程序在 中不必要地包含 JBoss 特定的库>/WEB-INF/lib.至少,类路径是困惑的。清理它。

关于java - 使用 postgresql 8.4 jdbc4 和 JBoss 5.1GA 调用 createArrayOf 时出现 AbstractMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2629773/

相关文章:

java - 调用远程 ESB 客户端错误

java - 访问 H2 DB 时出现表 "myTable"未发现错误

java - 从 HTTP 消息中查找下载的文件类型

java - 如何在运行时语言 (Java) 中向 Birt 中插入图像

java - 无法获得与 PostgreSQL 的 JDBC 连接

java - 阿基利安 : Can not run tests from IDE

java - JBoss Gradle

java - 如何从 Java 小程序确定主机?

java - 如何在 JDBC 中使用自动编号进行批量插入?

mysql - 无法在 Google Cloud App Engine Std Env 上创建与数据库服务器的连接