web-dev-qa-db-fra.com

java.lang.NoClassDefFoundError: org/Apache/juli/logging/LogFactory

Vous semblez avoir un problème pour démarrer mon application Java:

Exception dans le fil "principal" Java.lang.NoClassDefFoundError: org/Apache/juli/logging/LogFactory à l'adresse org.Apache.catalina.util.LifecycleBase. (LifecycleBase.Java:37) Causée par: Java.lang.ClassNotFoundException: org.Apache.juli.logging.LogFactory à l'adresse Java.net.URLClassLoader $ 1.run (URLClassLoader.Java:366) à Java.net.URLClassLoader $ 1.run (URLClassLoader.Java:355) à Java.security.AccessController.doPrivileged (Native Method) à Java.net.URLClassLoader.findClass (URLClassLoader.Java:354) à Java.lang.ClassLoader.loadClass (ClassLoader.Java:423) à Sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.Java:308) à Java.lang.ClassLoader.loadClass (ClassLoader.Java:356) ... 1 de plus

J'ai essayé la solution ici: Java.lang.NoClassDefFoundError: org/Apache/juli/logging/LogFactory

Mais je vois déjà Tomcat-juli.jar. J'utilise aussi Tomcat 7. Quel est le problème?

28
Michael

Votre machine virtuelle ne trouve pas la classe org/Apache/juli/logging/LogFactory vérifie si cette classe est présente dans le fichier Tomcat-juli.jar que vous utilisez (décompressez-la et recherchez le fichier). Tomcat-juli.jar dans un chemin (le répertoire lib) que Tomcat utilise pour charger les classes. Si votre Tomcat ne le trouve pas, vous pouvez copier le fichier jar dans le répertoire lib du JRE que vous utilisez. 

15
Max Zerbini

J'ai rencontré ce problème lors de l'utilisation de Tomcat-embed-core::7.0.47, de Maven. Je ne sais pas pourquoi ils n'ont pas ajouté Tomcat-util en tant que dépendance d'exécution, alors j'ai ajouté ma propre dépendance d'exécution à mon propre projet.

<dependency>
  <groupId>org.Apache.Tomcat</groupId>
  <artifactId>Tomcat-util</artifactId>
  <version><!-- version from Tomcat-embed-core --></version>
  <scope>runtime</scope>
</dependency>
11
Kyle Krull

Cela m'est arrivé parce que j'utilisais un fichier Tomcat 5.5 catalina.sh avec une installation de Tomcat 7. L’utilisation du catalina.sh fourni avec l’installation de Tomcat 7 a résolu le problème.

8
hertzsprung

Si vous utilisez jsvc pour exécuter Tomcat en tant que Tomcat (exécutez /etc/init.d/Tomcat en tant que root), éditez /etc/init.d/Tomcat et ajoutez $CATALINA_HOME/bin/Tomcat-juli.jar à CLASSPATH.

7
Prasad Bhimaraju

J'ai eu le même problème, ce qui m'a aidé était:

  1. Faites un clic droit sur le projet.
  2. Cliquez sur ' Propriétés '
  3. Allez dans ' Chemin de construction Java '
  4. Et ensuite: ' Bibliothèques '
  5. Ici, cliquez: Ajouter des fichiers externes
  6. Ajouter: '' Chemin/Vers/Tomcat/Bin/Tomcat-juli.jar

Terminé .

4
StationaryTraveller

Dans notre cas, la mauvaise version du plug-in Sysdeo Tomcat pour Eclipse 3.5 était utilisée. Le correctif:

  • Utilisez tomcatPluginV33 au lieu de tomcatPluginV321 (extrayez vers C:\Eclipse\dropins)
  • Assurez-vous que DevloaderTomcat7.jar a été placé dans le dossier Tomcat lib
  • Dans Fenêtre> Préférences> Tomcat, définissez la version de Tomcat sur 7.x

Ce problème peut avoir été unique à notre environnement; mais, je vais enregistrer ici quand même, pour l'amour de la postérité.

0
RMorrisey

Sur Ubuntu 14.04 LTS

/usr/share# mv /opt/Tomcat/Apache-Tomcat-7.0.56/ Tomcat7

résolu le problème pour moi. Il y avait un lien symbolique vers/opt. Dans ce répertoire opt, il y a des liens ../../Java qui ne renverraient pas à/usr/share/Java car les fichiers étaient physiquement dans/opt

0
Wolfgang Fahl