2011-10-31 11 views
25

sembrano avere un problema di iniziare il mio Java app:java.lang.NoClassDefFoundError: org/apache/Juli/logging/LogFactory

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory at org.apache.catalina.util.LifecycleBase.(LifecycleBase.java:37) Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 1 more

provato la soluzione qui: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

Ma vedo Tomcat -juli.jar già. Inoltre sto usando Tomcat 7. Cosa potrebbe esserci di sbagliato?

risposta

15

Il tuo VM non trova la classe org/apache/juli/logging/LogFactory controlla se questa classe è presente nel tomcat-juli.jar che usi (decomprimila e cerca nel file), se non è presente scarica la libreria dal sito Web di apache altrimenti è presente metti tomcat-juli.jar in un percorso (la directory lib) che Tomcat usa per caricare le classi. Se Tomcat non lo trova, puoi copiare il jar nella directory lib di JRE che stai utilizzando.

0

Nel nostro caso, veniva utilizzata la versione errata del plug-in Sysdeo Tomcat per Eclipse 3.5. La correzione:

  • Uso tomcatPluginV33 invece di tomcatPluginV321 (estratto a C:\eclipse\dropins)
  • Assicurarsi che DevloaderTomcat7.jar è stata collocata nella Tomcat lib cartella
  • In Finestra> Preferenze> Tomcat, impostare la versione di Tomcat a 7.x

Questo problema potrebbe essere stato unico per il nostro ambiente; ma, comunque, lo registrerò qui, per i posteri.

7

Se si utilizza jsvc per eseguire Tomcat come Tomcat (eseguito /etc/init.d/tomcat come root), modificare e aggiungere /etc/init.d/tomcat$CATALINA_HOME/bin/tomcat-juli.jar-CLASSPATH.

8

Questo è successo a me perché stavo utilizzando un file Tomcat 5.5 catalina.sh con un'installazione di Tomcat 7. L'utilizzo del catalina.sh fornito con l'installazione di Tomcat 7 ha risolto il problema.

+0

Questa non è una risposta. Questo dovrebbe essere nei commenti. –

+6

@AdityaSingh Questa ** è ** una risposta. include la diagnosi del problema e le specifiche di una risoluzione. Capita di essere ** succinta ** - che in nessun modo lo squalifica. – javadba

7

Mi sono imbattuto in questo problema quando si utilizza tomcat-embed-core::7.0.47, da Maven. Non sono sicuro del motivo per cui non hanno aggiunto tomcat-util come dipendenza di runtime, quindi ho aggiunto la mia dipendenza di runtime al mio progetto.

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-util</artifactId> 
    <version><!-- version from tomcat-embed-core --></version> 
    <scope>runtime</scope> 
</dependency> 
+0

Aiutato molto, utilizzando Spring Boot con una versione compatibile con Servlet 3.0 di Tomcat. Ho dovuto aggiungere questo, grazie! (Il mio è attualmente allo scopo "fornito"). – electrotype

0

Su Ubuntu 14.04 LTS

/usr/share# mv /opt/tomcat/apache-tomcat-7.0.56/ tomcat7 

risolto il problema per me. C'era un collegamento simbolico lì per/opt. Dentro quella directory opt là dove ../../java collegamenti che non puntano a/usr/share/java in quanto i file fisicamente erano in/opt

3

Ho avuto lo stesso problema, cosa mi ha aiutato è stato:

  1. Fare clic con il tasto destro del mouse sul progetto.
  2. Fare clic su 'Proprietà'
  3. Vai a 'Java Build Path'
  4. E poi: 'biblioteche'
  5. Lì, clic: Aggiungi Vasi esterne
  6. Add: '' Path/To/Tomcat/Bin/tomcat-juli.jar

Fatto.

Problemi correlati