【问题标题】:Web application in Tomcat stops because of "Could not load [org.apache.http.pool.AbstractConnPool$3]"Tomcat 中的 Web 应用程序因“无法加载 [org.apache.http.pool.AbstractConnPool$3]”而停止
【发布时间】:2018-07-10 20:21:27
【问题描述】:

经过一些小改动后,无法再部署 WAR。以下是catalina.out的主要部分:

2018 年 1 月 31 日 15:33:01.925 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本: Apache Tomcat/8.0.37 2018 年 1 月 31 日 15:33:01.928 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建:
2016 年 9 月 1 日 10:01:52 UTC 2018 年 1 月 31 日 15:33:01.928 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 服务器号:
8.0.37.0 2018 年 1 月 31 日 15:33:01.928 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:
Linux 2018 年 1 月 31 日 15:33:01.928 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 操作系统版本:
4.14.14-200.fc26.x86_64 2018 年 1 月 31 日 15:33:01.928 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 架构:
amd64 2018 年 1 月 31 日 15:33:01.928 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log Java 主页:
/usr/java/jdk1.8.0_131/jre 2018 年 1 月 31 日 15:33:01.928 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:
1.8.0_131-b11 2018 年 1 月 31 日 15:33:01.929 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 供应商:
甲骨文公司 2018 年 1 月 31 日 15:33:01.929 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:
/opt/apache-tomcat-8.0.37 2018 年 1 月 31 日 15:33:02.001 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:
/opt/apache-tomcat-8.0.37 2018 年 1 月 31 日 15:33:02.001 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 争论: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties 2018 年 1 月 31 日 15:33:02.002 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 争论: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 31-Jan-2018 15:33:02.002 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Djava.library.path=/usr/lib64 2018 年 1 月 31 日 15:33:02.002 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-Djdk.tls.ephemeralDHKeySize=2048 2018 年 1 月 31 日 15:33:02.002 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Xms512m 2018 年 1 月 31 日 15:33:02.004 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Xmx1024m 2018 年 1 月 31 日 15:33:02.005 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Xss512k 2018 年 1 月 31 日 15:33:02.005 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-XX:+UseParallelGC 31-Jan-2018 15:33:02.005 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-XX:MaxGCPauseMillis=1500 2018 年 1 月 31 日 15:33:02.005 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-XX:GCTimeRatio=9 31-Jan-2018 15:33:02.005 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-XX:+DisableExplicitGC 31-Jan-2018 15:33:02.005 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行 争论: -Darchaius.configurationSource.additionalUrls=https://s3.amazonaws.com/...... 2018 年 1 月 31 日 15:33:02.005 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 论点:-Darchaius.deployment.applicationId= 2018 年 1 月 31 日 15:33:02.005 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 论点:-Deureka.environment= 2018 年 1 月 31 日 15:33:02.005 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 论点:-Deureka.shouldUseDns=true 2018 年 1 月 31 日 15:33:02.006 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-Deureka.eurekaServer.context=eureka/v2 31-Jan-2018 15:33:02.006 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Deureka.eurekaServer.domainName=eureka.us-east-1…… 2018 年 1 月 31 日 15:33:02.006 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Deureka.eurekaServer.port=7001 2018 年 1 月 31 日 15:33:02.006 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dnetflix.datacenter=cloud 31-Jan-2018 15:33:02.006 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Djava.endorsed.dirs=/opt/tomcat/endorsed 2018 年 1 月 31 日 15:33:02.006 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Dcatalina.base=/opt/tomcat 31-Jan-2018 15:33:02.084 INFO [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-Dcatalina.home=/opt/tomcat 31-Jan-2018 15:33:02.084 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=/opt/tomcat/temp 。 . . SLF4J: 无法加载类“org.slf4j.impl.StaticLoggerBinder”。 SLF4J: 默认为无操作 (NOP) 记录器实现 SLF4J:请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder 了解更多 细节。 MLog 初始化问题:slf4j 发现没有绑定或 威胁要使用其(危险的沉默)NOPLogger。我们认为 找不到 slf4j 库。 2018 年 1 月 31 日 15:37:56,358 信息: com.mchange.v2.log.MLog - 使用 log4j 日志记录的 MLog 客户端。 1月31日 2018 15:37:57,011 信息:com.mchange.v2.c3p0.C3P0Registry - 初始化 c3p0-0.9.5.1 [建于 16-June-2015 00:06:36 -0700;调试? 真的;跟踪:10] 2018 年 1 月 31 日 15:42:43.383 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本: Apache Tomcat/8.0.37 2018 年 1 月 31 日 15:42:43.385 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: 2016 年 9 月 1 日 10:01:52 UTC 2018 年 1 月 31 日 15:42:43.385 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 服务器号: 8.0.37.0 2018 年 1 月 31 日 15:42:43.385 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:Linux 2018 年 1 月 31 日 15:42:43.385 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 操作系统版本: 4.14.14-200.fc26.x86_64 2018 年 1 月 31 日 15:42:43.385 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64 2018 年 1 月 31 日 15:42:43.385 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log Java 主页: /usr/java/jdk1.8.0_131/jre 2018 年 1 月 31 日 15:42:43.385 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本: 1.8.0_131-b11 2018 年 1 月 31 日 15:42:43.385 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log JVM 供应商: 甲骨文公司 2018 年 1 月 31 日 15:42:43.386 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /opt/apache-tomcat-8.0.37 2018 年 1 月 31 日 15:42:43.386 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/apache-tomcat-8.0.37 2018 年 1 月 31 日 15:42:43.386 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 争论: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties 2018 年 1 月 31 日 15:42:43.386 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 争论: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 31-Jan-2018 15:42:43.386 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Djava.library.path=/usr/lib64 2018 年 1 月 31 日 15:42:43.387 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-Djdk.tls.ephemeralDHKeySize=2048 2018 年 1 月 31 日 15:42:43.387 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Xms512m 2018 年 1 月 31 日 15:42:43.387 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Xmx1024m 2018 年 1 月 31 日 15:42:43.387 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Xss512k 2018 年 1 月 31 日 15:42:43.387 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-XX:+UseParallelGC 31-Jan-2018 15:42:43.387 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-XX:MaxGCPauseMillis=1500 2018 年 1 月 31 日 15:42:43.387 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-XX:GCTimeRatio=9 31-Jan-2018 15:42:43.388 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-XX:+DisableExplicitGC 31-Jan-2018 15:42:43.388 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行 争论: -Darchaius.configurationSource.additionalUrls=https://s3.amazonaws.com/...... 2018 年 1 月 31 日 15:42:43.388 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Darchaius.deployment.applicationId=batchservicesfig 2018 年 1 月 31 日 15:42:43.388 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 论点:-Deureka.environment=stage 31-Jan-2018 15:42:43.388 INFO [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-Deureka.shouldUseDns=true 31-Jan-2018 15:42:43.388 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Deureka.eurekaServer.context=eureka/v2 2018 年 1 月 31 日 15:42:43.389 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Deureka.eurekaServer.domainName=eureka.us-east-1.stage..... 2018 年 1 月 31 日 15:42:43.389 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Deureka.eurekaServer.port=7001 2018 年 1 月 31 日 15:42:43.389 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dnetflix.datacenter=cloud 31-Jan-2018 15:42:43.389 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 论据:-Darchaius.default.configuration.class=com..... 2018 年 1 月 31 日 15:42:43.389 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-DVAULT_URI=https://vault.devopsapps.us-east-1.stage..... 2018 年 1 月 31 日 15:42:43.389 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-DVAULT_SECRET_PATH=batchservicesfig 2018 年 1 月 31 日 15:42:43.389 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Djava.endorsed.dirs=/opt/tomcat/endorsed 2018 年 1 月 31 日 15:42:43.390 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 命令行 参数:-Dcatalina.base=/opt/tomcat 2018 年 1 月 31 日 15:42:43.390 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令 行参数:-Dcatalina.home=/opt/tomcat 31-Jan-2018 15:42:43.390 信息 [主] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.io.tmpdir=/opt/tomcat/temp 31-Jan-2018 15:42:43.390 信息 [主要] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 已加载 基于 APR 的 Apache Tomcat 本机库 1.2.14 使用 APR 版本 1.6.3。 2018 年 1 月 31 日 15:42:43.390 信息 [主要] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 能力:IPv6 [true]、sendfile [true]、接受过滤器 [false]、 随机[真]。 2018 年 1 月 31 日 15:42:43.394 信息 [主要] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 成功初始化(OpenSSL 1.1.0g-fips 2017 年 11 月 2 日)2018 年 1 月 31 日 15:42:44.673 信息 [主要] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["http-apr-8080"] 2018 年 1 月 31 日 15:42:44.685 信息 [主要] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["ajp-apr-8009"] 2018 年 1 月 31 日 15:42:44.686 INFO [main] org.apache.catalina.startup.Catalina.load 初始化 在 2575 毫秒内处理 31-Jan-2018 15:42:44.955 INFO [main] org.apache.catalina.core.StandardService.startInternal 启动 服务 Catalina 2018 年 1 月 31 日 15:42:44.956 信息 [主要] org.apache.catalina.core.StandardEngine.startInternal 启动 Servlet 引擎:Apache Tomcat/8.0.37 2018 年 1 月 31 日 15:42:44.991 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR 部署 web 应用程序存档 /opt/apache-tomcat-8.0.37/webapps/ROOT.war 2018 年 1 月 31 日 15:42:56.061 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个 JAR 已扫描 TLD,但未包含 TLD。为此启用调试日志记录 记录器以获取已扫描但没有 TLD 的 JAR 的完整列表 在他们身上找到。在扫描期间跳过不需要的 JAR 可以改善 启动时间和 JSP 编译时间。 SLF4J:加载类失败 “org.slf4j.impl.StaticLoggerBinder”。 SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder 了解更多 细节。 2018 年 1 月 31 日 15:43:02.385 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal 一个或多个 侦听器无法启动。完整的详细信息将在 适当的容器日志文件 31-Jan-2018 15:43:02.394 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [] 由于先前的错误,启动失败 31-Jan-2018 15:43:02.423 警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web 应用程序 [ROOT] 似乎已经启动了一个名为 [java-sdk-http-connection-reaper] 但未能阻止它。这是 很可能造成内存泄漏。线程的堆栈跟踪: java.lang.Thread.sleep(本机方法) com.amazonaws.http.IdleConnectionReaper.run(IdleConnectionReaper.java:112) 2018 年 1 月 31 日 15:43:02.436 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR web 部署 应用程序存档 /opt/apache-tomcat-8.0.37/webapps/ROOT.war 有 完成于 17,444 毫秒 31-Jan-2018 15:43:02.439 INFO [main] org.apache.coyote.AbstractProtocol.start 启动 ProtocolHandler [“http-apr-8080”] 2018 年 1 月 31 日 15:43:02.461 信息 [主要] org.apache.coyote.AbstractProtocol.start 启动 ProtocolHandler [“ajp-apr-8009”] 2018 年 1 月 31 日 15:43:02.470 信息 [主要] org.apache.catalina.startup.Catalina.start 服务器在 17783 毫秒内启动 2018 年 1 月 31 日 15:44:01.887 信息 [java-sdk-http-connection-reaper] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此 Web 应用程序实例已停止 已经。无法加载 [org.apache.http.pool.AbstractConnPool$3]。这 抛出以下堆栈跟踪以用于调试目的以及 尝试终止导致非法访问的线程。 java.lang.IllegalStateException:非法访问:此 Web 应用程序 实例已经停止。不能加载 [org.apache.http.pool.AbstractConnPool$3]。以下堆栈跟踪 被抛出用于调试目的以及尝试终止 导致非法访问的线程。在 org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1353) 在 org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1341) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1206) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) 在 org.apache.http.pool.AbstractConnPool.closeIdle(AbstractConnPool.java:616) 在 org.apache.http.impl.conn.PoolingClientConnectionManager.closeIdleConnections(PoolingClientConnectionManager.java:296) 在 com.amazonaws.http.IdleConnectionReaper.run(IdleConnectionReaper.java:127)

请注意,相同的 WAR 在我的本地 Tomcat 8.0.27 上运行良好,并且此问题仅在 AWS 上发生。另外,不用下面的代码:

org.apache.cxf.endpoint.Client client = ClientProxy.getClient(port);
 HTTPConduit httpConduit = (HTTPConduit)client.getConduit();
 HTTPClientPolicy policy = httpConduit.getClient();

 LOGGER.info("CXF client connection timeout: " + 
     policy.getConnectionTimeout());
 LOGGER.info("CXF client async execute timeout: " + 
     policy.getAsyncExecuteTimeout());
 LOGGER.info("CXF client receive timeout: " + 
     policy.getReceiveTimeout());

 policy.setReceiveTimeout(rcvTimeout);
 policy.setConnectionTimeout(connTimeout);

即使在 AWS 上也可以。以上代码sn-p需要以下依赖:

compile group: 'org.apache.cxf', name: 'cxf-rt-frontend-jaxws', version: '3.2.1'
compile group: 'org.apache.cxf', name: 'cxf-rt-transports-http-hc', version: '3.2.1'

感谢您的帮助!

丹尼尔

【问题讨论】:

    标签: java tomcat cxf


    【解决方案1】:

    在我们将相同的东西从 Spring 4.3 移到 Spring Boot 1.5 项目后,一切正常。似乎 Spring Boot 在处理依赖管理方面做得更好。

    【讨论】:

      猜你喜欢
      • 2016-12-15
      • 1970-01-01
      • 2012-06-20
      • 2019-09-05
      • 1970-01-01
      • 2012-04-06
      • 2011-05-20
      • 2012-08-20
      • 1970-01-01
      相关资源
      最近更新 更多