Tomcat启动堆栈异常

近日部署项目到Tomcat,访问一直404。

于是查看 catalina.out 日志信息,发现如下信息

30-Jun-2019 16:38:03.642 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
30-Jun-2019 16:38:03.646 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Context [/XXX] startup failed due to previous errors

其实还是没有看明白原因,只知道项目启动失败

再次查看 localhost.2019-06-30.log 发现如下循环输出的异常信息:

30-Jun-2019 16:13:56.351 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
	java.lang.StackOverflowError
		at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:39)
		at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
		at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:66)
		at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
		at org.apache.log4j.Category.<init>(Category.java:57)
		at org.apache.log4j.Logger.<init>(Logger.java:37)
		at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
		at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
		at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:66)
		at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
		at org.apache.log4j.Category.<init>(Category.java:57)
		at org.apache.log4j.Logger.<init>(Logger.java:37)

 

推测是jar包冲突:log4j-over-slf4j.jar 和 slf4j-log4j12.jar

果然在 WEB-INF\lib 里面找到这两个家伙,于是先删除log4j-over-slf4j.jar,在重启tomcat,通过浏览器能够正常访问。

我们的是maven项目,用的Idea。

打开pom.xml文件

右键 -> Maven -> Show Dependencies

然后打开依赖的图, 看到依赖关系之后,

ctrl+f 在弹出框Diagram Elements 找到 log4j-over-slf4j 点进去:

右键 -> Exclude 即可。

最终在pom.xml文件里自动生成排除我们在界面exclude的依赖。

重新打包项目,发布war包到tomcat,能正常启动,访问。

问题解决。

原文地址:https://www.cnblogs.com/liuxiutianxia/p/11110683.html

时间: 2024-10-10 23:20:38

Tomcat启动堆栈异常的相关文章

tomcat 启动 证书异常java.io.IOException: Alias name [cas] does not identify a key entry

在搭建CAS server的过程中,Tomcat开启https,配置秘钥证书,证书是通过keytool生成的 <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

Eclipse使用异常——tomcat启动

Eclipse使用异常--tomcat启动 一:问题描述 Eclipse刚上手.很多地方与Myeclipse不一样的地方.比如tomcat的使用.真心的蛋疼. 环境:JDK7.TOMCAT7.Eclipse中从svn检出来的Web项目.将项目部署到tomcat中(不管是哪种方式).最后启动.卡在Starting Apache Tomcat - 就死.过一会后面就提示失败.仅仅弹出如图对话框.没有任何其他信息: 将项目打成war包放在tomcat下直接启动tomcat反而可以正常启动. 二:问题解

tomcat启动后访问rest接口时出现类加载不了的异常?

tomcat启动后请求rest api时出现如下异常:(启动过程中未报任何异常) ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/******].[default]- Servlet.service() for servlet [default] in context with path [/******] threw exceptionjava.lang.NullPointerException    

解决Tomcat启动时出现的The APR based Apache Tomcat Native library异常

现在用的tomcat6.0,不知道大家注意没有,在启动的时候,那个启动窗口最上面出现这样一条信息: 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: 这实际上是tomcat推荐使用apache的apr 需要下载tcnative-1.dll 下载后放到tom

Tomcat启动报FileNotFound异常解决方案

如果使用JEECG框架进行Tomcat启动时,如果web.xml引用了其他xml文件,需要在tomcat文件夹里的config文件夹里的context.xml文件里的Context标签里配置xmlBlockExternal="false"即可(本人Tomcat7.0) 原文地址:https://www.cnblogs.com/XingXiaoMeng/p/8289440.html

&lt;&lt;&lt; tomcat启动是报错StandardServer.await: create[8005]

启动tomcat的时候出现异常 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 严重: StandardServer.await: create[8005]: java.net.BindException: Address already in use: JVM_Bind         at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(Plai

tomcat启动时JVM内存大小,以免出现内存溢出

问题: 主要是2个内存溢出的错误. 首先是:java.lang.OutOfMemoryError: Java heap space 其次是:java.lang.OutOfMemoryError: PermGen space 最终解决办法[我是4G内存,请适当修改大小]: [Windows]在catalina.bat的第一行增加: set JAVA_OPTS=-Xms512m -Xmx900m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSiz

Tomcat启动时报StandardServer.await: create[8005]: java.net.BindException: Cannot assign requested address: JVM_Bind

问题描述: 今天一早,所有淡定下来后准备启动本地Tomcat,突然出现一堆错误: 严重: StandardServer.await: create[8005]: java.net.BindException: Cannot assign requested address: JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSocketImpl.

tomcat启动过程分析

1.通过catalina.sh start脚本启动,调用org.apache.catalina.startup.Bootstrap的main方法,传人参数start,首先是创建一个Bootstrap的实例并付给static变量daemon,然后调用daemon的init方法,在init方法中设置catalina-home,catalina-base,之后根据catalina.properties的配置创建commonLoader(父loader为空).catalinaLoader.sharedL