错误部署war tomcat

时间:2018-01-19 18:12:03

标签: tomcat grails

我正在使用版本grails 2.5.0和tomcat 8,在我的电脑中我可以毫无问题地部署这场战争,但不要在服务器中

我接受了这个错误:

19-Jan-2018 13:03:17.992 SEVERE [localhost-startStop-1]    org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class [org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener]
java.lang.StackOverflowError
at java.util.Hashtable.containsKey(Hashtable.java:335)
at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:57)
at org.apache.log4j.LogManager.getLogger(LogManager.java:44)
at org.slf4j.impl.GrailsSlf4jLoggerFactory.getLogger(GrailsSlf4jLoggerFactory.java:42)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
at org.apache.log4j.Category.<init>(Category.java:56)
at org.apache.log4j.Logger.<init>(Logger.java:36)
at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:60)
at org.apache.log4j.LogManager.getLogger(LogManager.java:44)
at org.slf4j.impl.GrailsSlf4jLoggerFactory.getLogger(GrailsSlf4jLoggerFactory.java:42)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
at org.apache.log4j.Category.<init>(Category.java:56)
at org.apache.log4j.Logger.<init>(Logger.java:36)

我在我的服务器中复制了相同的文件夹tomcat但我犯了这个错误。

任何帮助?

1 个答案:

答案 0 :(得分:1)

可能是项目中的日志库存在一些循环依赖。

首先要处理这个问题,你应该检查一下你有什么依赖关系 在你的grails项目中。在项目路径下运行下一个shell命令:

grails dependency-report > dependencies.txt

然后在dependencies.txt中,您应该检查可能不兼容的日志库的使用情况。 如果同时使用,很少有slf4j库会导致无限循环。

来自slf4j文档:

  

log4j-over-slf4j.jar和slf4j-log4j12.jar不能同时出现

     

jul-to-slf4j.jar和slf4j-jdk14.jar不能同时出现

有关详细信息,请参阅:https://www.slf4j.org/legacy.html

例如,对我来说,修复是排除log4j-over-slf4j和bcprov-jdk15依赖项 来自spring-security-rest插件

plugins {
    ...
    compile ("org.grails.plugins:spring-security-rest:1.5.3") {
        excludes "log4j-over-slf4j", "bcprov-jdk15"
    }
}