我有一个问题,我尝试在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)
答案 0 :(得分:2)
将org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES系统属性设置为false。
<jvm-options>
org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false
</jvm-options>
这可以在Glassfish的domain.xml文件中找到(glassfish / domains / domain1 / config)
答案 1 :(得分:0)
我为我工作。
<jvm-options>
org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false
</jvm-options>
它应该在和之间。
你可以在( {glassfish domains folder} / glassfish / domains / domain1 / config )中找到domain.xml。
我使用了log4j-1.2.17和GlassFish Server 3.1