tomcat - 部署 war tomcat 时出错

标签 tomcat grails

我使用的是grails 2.5.0版本和tomcat 8,在我的电脑上我可以毫无问题地部署这场 war ,但在服务器上却不行

我接受这个错误:

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,但出现此错误。

有什么帮助吗?

最佳答案

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

要解决这个问题,首先您应该检查您有哪些依赖项 在你的 Grails 项目中。在项目路径下运行下一个shell命令:

grails dependency-report > dependencies.txt

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

来自 slf4j 文档:

log4j-over-slf4j.jar and slf4j-log4j12.jar cannot be present simultaneously

jul-to-slf4j.jar and slf4j-jdk14.jar cannot be present simultaneously

更多详情请参阅: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"
    }
}

关于tomcat - 部署 war tomcat 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48347163/

相关文章:

spring-boot - 让 Tomcat 7 在远程 CentOS 7.5 上运行

java.sql.SQLException : No suitable driver found for jdbc:mysql://localhost:3306 异常

grails - GORM 基本无法理解的问题

java - Tomcat 请求日志记录 - 如何?

angular - 在 Tomcat Apache 生产服务器中部署 Angular 7 PWA 应用程序

Grails 字符串枚举?

maven - Grails 支持新的 Maven 中心

java - 在单元测试中模拟 Controller 标准...grails

html - GSP 克 :select option default selection

java - 自定义 Tomcat 日志记录类需要 ServletContext