2012-03-26 2 views
13

sto affrontando la seguente eccezione: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 

Ho cercato su google su questa eccezione e ha scoperto che la maggior parte delle risposte indica che si tratta di bug in tomcat 5.5 e sarà risolto nella versione 5.5.28.

Tuttavia sto utilizzando Tomcat 7.11 con log4j-1.2.16.jar sto ancora affrontando lo stesso problema.

+0

Sto riscontrando lo stesso problema –

+0

Se si dispone di un collegamento simmetrico tra le cartelle nell'app Web, consultare qui: http://stackoverflow.com/questions/22240776/symlinking-tomcat-8-directory-resources – GlenPeterson

risposta

2

Sembra che si tratti di un problema con le tue librerie. Sei sicuro di avere il file jar Log4J nella cartella WEB-INF/lib della tua webapp?

+0

Sì, ho ** log4j-1.2.16.jar ** in 'my-webapplication \ WEB-INF \ lib \' –

+0

Avendo lo stesso problema qui in Weblogic. Sospettavo un conflitto tra la libreria log4j di weblogic e quella della mia applicazione, ma anche usare la sezione di weblogic prefer-application-packages del weblogic.xml non lo ha chiarito. Ci sono dentro quando cerco di usare Spring MVC. – Jason

+0

Sto riscontrando lo stesso problema, cercando di eseguire Openbravo 3.0MP11 sotto Tomcat 7.0.21. Ho provato ad aggiungere log4j sotto/var/lib/tomcat7/shared,/var/lib/tomcat7/shared/lib,/usr/share/tomcat7/lib ...... niente funziona :( –

8

Per me, la soluzione per questo problema (testato con Openbravo 3.0MP11 e Tomcat 7.0.21) è stato:

  1. Rimuovere il log4j-1.2.16.jar da WEB-INF/lib.
  2. Inserire il jar log4j nella directory lib di Tomcat. In Ubuntu 11.10 questo sarebbe /usr/share/tomcat7/lib

Nota per il mio specifico caso d'uso di Openbravo: Questo non risolve il problema log4j, ma poi mi sono imbattuto in altre questioni.

+0

hai rimosso qualche altro log4j jar? – rogerdpack

-1

ho ottenuto lo stesso errore in catalina.out, ma trovare l'errore all'inizio:

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

Infine il vero motivo è la porta.

0

Come risolverlo. Per me:

  1. try {} catch() log4j exception throw.
  2. run tomcat again to find the real problem
  3. solve the real problem and delete try{} catch()

Non è un problema per log4j e tomcat. Genera un'eccezione perché parte del codice esegue un errore in webapp init. Forse xml o config è un errore.