У меня есть приложение Grails, которое запускается в Glassfish, но когда я его отменяю, оно получает
Нарушение инварианта класса
Быстрый просмотр трассировки стека и поиск поВ Интернете сообщается, что это проблема с Log4j
. Я использую последнюю версию log4j в то время log4j-1.2.16.jar
Любые предложения, как преодолеть эту ошибку.
[Mon, 22-Aug-2011 @ 09:23:32.494] [admin-thread-pool-4848(64)] ERROR javax.enterprise.system.std.com.sun.enterprise.server.logging - 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.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:243)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
[Редактировать 1]
Я только что нашел это на интересном форуме источника, который интересен:
Рекомендуется следующееизбежать этой проблемы:
- Установите системное свойство org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES в значение false.
- Примените исправление из ошибки 40212 или обновите до версии, которая имеетэтот патч применен.
- Обновление до log4j 1.2.16 или более поздней версии для лучшей защиты от атаки загрузчика классов или предоставления более качественного диагностического сообщения, когда оно происходит.
[Решение] Настройкасвойство
org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES = false
в файле domain.xml в Glassfish решает проблему