Spring Boot应用程序内部的内部tomcat停止响应呼叫

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

我们有一个带有tomcat的spring boot Web应用程序。该应用程序可以正确启动并响应请求,但是一段时间后,当Java进程处于活动状态时,tomcat停止响应请求。通过以下pom配置添加所有与log4j相关的依赖项

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>

但是我在控制台中看到以下错误,

[线程“ http-nio-8034-Acceptor-0”中的异常”java.lang.NoClassDefFoundError:org / apache / logging / log4j / core / impl / ThrowableProxy位于org.apache.logging.log4j.core.impl.Log4jLogEvent.getThrownProxy(Log4jLogEvent.java:555)在org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter.format(ExtendedThrowablePatternConverter.java:61)在org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:38)在org.apache.logging.log4j.core.layout.PatternLayout $ PatternSerializer.toSerializable(PatternLayout.java:294)在org.apache.logging.log4j.core.layout.PatternLayout.toText(PatternLayout.java:195)在org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:180)在org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:57)在org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:176)在org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:169)在org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:160)在org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)在org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)在org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)在org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)在org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:447)在org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:432)在org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:416)在org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:402)在org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)在org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)在org.apache.logging.slf4j.Log4jLogger.log(Log4jLogger.java:376)处org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:221)在org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:303)在java.util.logging.Logger.log(Logger.java:738)处java.util.logging.Logger.doLog(Logger.java:765)在java.util.logging.Logger.logp(Logger.java:1042)在org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:181)在org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:147)在org.apache.tomcat.util.net.NioEndpoint $ Acceptor.run(NioEndpoint.java:481)在java.lang.Thread.run(Thread.java:748)造成原因:java.lang.ClassNotFoundException:org.apache.logging.log4j.core.impl.ThrowableProxy位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)在java.lang.ClassLoader.loadClass(ClassLoader.java:424)在org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)在java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 30个以上

我监视了VM的CPU,内存统计信息,一切看起来都很好。无法弄清楚为什么tomcat无法响应。

spring-boot tomcat log4j2
1个回答
0
投票

找到了此问题的原因。春天的这个错误与春天寻找静态文件的方式有关。

tomcat中的错误并没有给我们一个线索,但是在另一个VM中也发生了相同的错误,但是还有一些额外的日志,上面写着“打开文件太多”,这有助于找到原因。

how can i handle with /tmp/jar_cache#######.tmp?

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