Подтвердить что ты не робот

Tomcat 7 - java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation

Я столкнулся со следующим Исключением:

Mar 26, 2012 1:20:34 PM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.  
Could not   load org.apache.log4j.spi.ThrowableInformation.  
The eventual following stack trace is caused by an error thrown for debugging purposes 
as well as to attempt to terminate the thread which caused the illegal access, and has  
no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1562)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:165)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.error(Category.java:322)
at com.abc.supervisionmanager.Monitoring.run(Monitoring.java:205)
at java.lang.Thread.run(Thread.java:662)
Exception in thread "Thread_Monitoring" java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation
at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:165)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.error(Category.java:322)
at com.abc.supervisionmanager.Monitoring.run(Monitoring.java:205)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.spi.ThrowableInformation
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
... 5 more

Я искал это исключение и обнаружил, что большинство ответов указывает на то, что это ошибка в tomcat 5.5, и она будет решена в версии 5.5.28.

Однако в настоящее время я использую tomcat 7.11 с log4j-1.2.16.jar. Я все еще сталкиваюсь с той же проблемой.

4b9b3361

Ответ 1

Для меня решение этой проблемы (протестировано с Openbravo 3.0MP11 и Tomcat 7.0.21):

  • Удалите log4j-1.2.16.jar из WEB-INF/lib.
  • Поместите лог log4j в каталог Tomcat lib. В Ubuntu 11.10 это будет /usr/share/tomcat7/lib

Примечание для моего конкретного случая использования Openbravo: это решает проблему log4j, но затем я столкнулся с другими проблемами.

Ответ 2

Похоже, что это проблема с вашими библиотеками. Вы уверены, что у вас есть файл журнала Log4J в папке WEB-INF/lib вашего веб-клиента?

Ответ 3

Как это решить. Для меня:

  • try {} catch() log4j exception throw.
  • снова запустите tomcat, чтобы найти реальную проблему.
  • решить настоящую проблему и удалить try {} catch()

Это не проблема для log4j и tomcat. Это вызовет исключение, потому что некоторая ошибка вашего кода в webapp init. Возможно, xml или config - ошибка.

Ответ 4

Я получил ту же ошибку в catalina.out, но обнаружил ошибку в начале:

2016-3-18 16:44:59 org.apache.catalina.core.StandardServer await
StandardServer.await: create[localhost:8291]: 
java.net.BindException: Address already in use

Наконец, настоящей причиной является порт.