JDBC 通过 JT400 适用于本地 Apache Tomcat 8 安装但在 Apache Tomcat 8 运行 服务器上安装失败
JDBC via JT400 works on local Apache Tomcat 8 install but fails on Apache Tomcat 8 running on server
我有一个 Java 应用程序 运行 并在我的开发工作站上测试 运行 Apache Tomcat 8. 我有一个已建立的 IBM i (AS/400 ) 使用 JT400.jar 文件在本地工作的数据库连接。当我使用相同的 JT400.jar 文件构建应用程序并将其部署到我们的生产服务器 运行 Apache Tomcat 8 时,数据库连接似乎失败了,我无法弄清楚原因。
我收到以下 "HTTP Status 500 - Servlet execution threw an exception" 错误:
<code>
java.lang.AbstractMethodError
org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:913)
org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:218)
org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:302)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2164)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2147)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:1902)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1412)
utilities.SerialSearch.doSearch(SerialSearch.java:81)
processes.ProcessScan.getSerialScreenDetail(ProcessScan.java:66)
processes.ProcessScan.ProcessScanRequest(ProcessScan.java:103)
controller.MetricServlet.performTask(MetricServlet.java:145)
controller.MetricServlet.doPost(MetricServlet.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</code>
有什么不同,我该如何解决这个问题?
谢谢!
问题已解决。新手错误。我无意中通过重命名将旧的 jt400 jar 文件留在了 Apache Tomcat 8 服务器上的 lib 文件夹中。一旦我删除了旧的 jar 文件,我的问题就用我上周安装的新 jt400 jar 解决了,它开始了冲突。谢谢!
我在使用当前最新版本(截至今天的 9.3)时遇到了同样的错误。
问题是我使用的是 JDK 8,并使用 maven 获取包我收到的版本不适合此 JDK。
为了解决这个问题,我使用了正确的 maven 限定符:
<dependency>
<groupId>net.sf.jt400</groupId>
<artifactId>jt400</artifactId>
<version>9.3</version>
<classifier>jt400_jdk8</classifier>
</dependency>
请注意,如果您下载完整套件的 zip,所有版本的 jar 都有相同的名称(即 jt400.jar),这使得它们很难区分。
我有一个 Java 应用程序 运行 并在我的开发工作站上测试 运行 Apache Tomcat 8. 我有一个已建立的 IBM i (AS/400 ) 使用 JT400.jar 文件在本地工作的数据库连接。当我使用相同的 JT400.jar 文件构建应用程序并将其部署到我们的生产服务器 运行 Apache Tomcat 8 时,数据库连接似乎失败了,我无法弄清楚原因。
我收到以下 "HTTP Status 500 - Servlet execution threw an exception" 错误:
<code>
java.lang.AbstractMethodError
org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:913)
org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:218)
org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:302)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2164)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2147)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:1902)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1412)
utilities.SerialSearch.doSearch(SerialSearch.java:81)
processes.ProcessScan.getSerialScreenDetail(ProcessScan.java:66)
processes.ProcessScan.ProcessScanRequest(ProcessScan.java:103)
controller.MetricServlet.performTask(MetricServlet.java:145)
controller.MetricServlet.doPost(MetricServlet.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
</code>
有什么不同,我该如何解决这个问题?
谢谢!
问题已解决。新手错误。我无意中通过重命名将旧的 jt400 jar 文件留在了 Apache Tomcat 8 服务器上的 lib 文件夹中。一旦我删除了旧的 jar 文件,我的问题就用我上周安装的新 jt400 jar 解决了,它开始了冲突。谢谢!
我在使用当前最新版本(截至今天的 9.3)时遇到了同样的错误。
问题是我使用的是 JDK 8,并使用 maven 获取包我收到的版本不适合此 JDK。
为了解决这个问题,我使用了正确的 maven 限定符:
<dependency>
<groupId>net.sf.jt400</groupId>
<artifactId>jt400</artifactId>
<version>9.3</version>
<classifier>jt400_jdk8</classifier>
</dependency>
请注意,如果您下载完整套件的 zip,所有版本的 jar 都有相同的名称(即 jt400.jar),这使得它们很难区分。