我正在使用版本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但我犯了这个错误。
任何帮助?
答案 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"
}
}