部署Web应用程序时出现Log4j错误

时间:2013-04-30 08:31:10

标签: glassfish log4j

我有一个问题,我尝试在glassfish 3.1.2中部署我的web项目,它工作正常但抛出以下错误,请帮我理解是什么问题

SEVERE: log4j:ERROR log4j called after unloading, see http://logging.apache.org/log4j/1.2/faq.html#unload.
SEVERE: java.lang.IllegalStateException: Class invariant violation
    at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)
    at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
    at org.apache.log4j.Logger.getLogger(Logger.java:104)
    at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:229)
    at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:65)
    at sun.reflect.GeneratedConstructorAccessor47.newInstance(Unknown Source)

2 个答案:

答案 0 :(得分:2)

将org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES系统属性设置为false。

<jvm-options>
    org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFEREN‌​CES=false
</jvm-options>

这可以在Glassfish的domain.xml文件中找到(glassfish / domains / domain1 / config)

答案 1 :(得分:0)

我为我工作。 <jvm-options> org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFEREN‌​CES=false </jvm-options> 它应该在和之间。 你可以在( {glassfish domains folder} / glassfish / domains / domain1 / config )中找到domain.xml。 我使用了log4j-1.2.17和GlassFish Server 3.1