JBoss部署项目log4j配置会造成死锁问题,浏览器访问一直pending状态

  今天将项目部署到JBoss服务器上,部署成功后,浏览器访问页面一直在等待响应。

  查了很长时间,最后在服务器上通过jstack pid命令查看Java堆栈信息,发现了有两个线程死锁。

  看到造成死锁的原因是因为log4j往控制台上打印信息时候,于是修改了项目的log4j配置文件,修改为不在控制台输出,重新打包部署,成功访问。

  后来发现问题是log4j配置文件配置有问题:如下

  我配置了两个输出,所以造成了再jboss上部署死锁问题(tomcat、jetty下可以正常运行,就是jboss上按照这个配置会出现死锁),解决办法就是删除掉一个输出,保留一个就ok。

  推荐两个命令:

  jstat和jstack  不了解的可以学习下

posted on 2016-08-02 12:58  程序人生ly  阅读(945)  评论(0编辑  收藏  举报