Tomcat 7 - java.lang.NoClassDefFoundError: org / apache / log4j / spi / ThrowableInformation - PullRequest
15 голосов
/ 26 марта 2012

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

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. Я все еще сталкиваюсь с той же проблемой.

Ответы [ 4 ]

9 голосов
/ 25 июня 2012

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

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

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

2 голосов
/ 26 марта 2012

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

0 голосов
/ 05 июля 2018

У меня была эта проблема с портлетом (liferay 6.2 Tomcat bundle).Я исправил это, удалив развертывание, вызвавшее исключение (в папке tomcat webapps), очистив и повторно развернув (с maven - liferay:deploy) портлет.

0 голосов
/ 18 мая 2016

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

  1. try {} catch () log4jception throw.
  2. снова запустить tomcat, чтобы найти реальную проблему
  3. решить реальную проблему иdelete try {} catch ()

Это не проблема для log4j и tomcat.Это вызовет исключение, потому что часть вашего кода запускает ошибку в инициализации webappМожет быть, XML или конфигурации является ошибкой.

...