web-dev-qa-db-fra.com

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

J'ai effectivement résolu ce problème, mais cela m'a pris plusieurs jours. J'ai donc pensé coller ma solution ici pour aider les autres.

J'utilise Fedora 11 et, dans Eclipse, j'ai essayé d'ajouter un serveur Tomcat 6 et de le démarrer. Je voudrais obtenir l'erreur suivante:

'Le démarrage du serveur Tomcat v6.0 sur localhost' a rencontré un problème.

Serveur Tomcat v6.0 Le démarrage du serveur sur localhost a échoué.

Ensuite, dans ma console, j'ai eu ce qui suit:

Exception in thread "main" Java.lang.NoClassDefFoundError: org/Apache/juli/logging/LogFactory
  at org.Apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.Java:54)
Caused by: Java.lang.ClassNotFoundException: org.Apache.juli.logging.LogFactory
  at Java.net.URLClassLoader$1.run(URLClassLoader.Java:217)
  at Java.security.AccessController.doPrivileged(Native Method)
  at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:323)
  at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:294)
  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:268)
  at Java.lang.ClassLoader.loadClassInternal(ClassLoader.Java:336)
  ... 1 more
Could not find the main class: org.Apache.catalina.startup.Bootstrap. Program will exit.

Je posterai la solution dans une réponse ci-dessous.

40
Sean R

J'ai trouvé la solution ici: http://forums.opensuse.org/applications/391114-Tomcat6-Eclipse-not-working.html

  1. Dans Eclipse, ouvrez l'onglet "Serveur".
  2. Double-cliquez sur l'entrée "Tomcat6" pour voir la configuration.
  3. Cliquez ensuite sur le lien "Ouvrir la configuration de lancement" dans le bloc "Informations générales".
  4. Dans la boîte de dialogue, sélectionnez l'onglet "Classpath".
  5. Cliquez sur le bouton "Ajouter un fichier externe".
  6. Sélectionnez le fichier "/usr/share/Tomcat6/bin/Tomcat-juli.jar"
  7. Fermez la boîte de dialogue.
  8. Démarrez Tomcat 6 à partir d’Eclipse.

J'espère que l'afficher ici aidera une pauvre âme.

79
Sean R

J'ai copié le contenu du répertoire "C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf" dans le répertoire "workspace\Servers\Tomcat v6.0 sur localhost-config" pour Eclipse. J'ai actualisé le dossier "Serveurs\Tomcat version 6.0 sur localhost-config" dans l'explorateur de projets Eclipse, puis tout s'est bien passé.

8
Sandor Takats

les solutions susmentionnées ne m'ont pas aidé. Je pouvais le résoudre en réinstallant le serveur Tomcat, ce qui prenait quelques secondes.

2
user1608396
  1. installer Tomcat

    # miam installer Tomcat6 *

  2. éditer le fichier de configuration Tomcat

    # vim /etc/Tomcat6/Tomcat-users.xml

quelque chose comme:

<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
  <role rolename="Tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="Tomcat" password="Tomcat" roles="Tomcat"/>
  <user username="both" password="Tomcat" roles="Tomcat,role1"/>
  <user username="role1" password="Tomcat" roles="role1"/>
  <user username="TomcatAdmin" password="Tomcat" roles="admin,manager"/>
</Tomcat-users>
  1. créer un répertoire racine pour votre projet J2EE, exemple:

    $ mkdir -p ~/Projet/Java /

  2. faire un lien symbolique,/usr/share/Tomcat6/webapps/à ~/Projet/Java /

    # ln -s /home//Project/Java//dist/.war /usr/share/Tomcat6/webapps/.war

Remarque: le fichier d’archive war est créé automatiquement lorsque vous utilisez Netbeans.

Vous pouvez faire:

# ln -s /home/<login>/Project/Java/<myProject>/webapps /usr/share/Tomcat6/webapps/<myProject>
  1. vérifier le fichier/etc/hosts, ce fichier doit contenir le nom de la machine, le fichier hôtes mine

    jonathan 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  2. démarrer le service httpd

    # service httpd start

  3. consultez la page Web de loclahost

  4. démarrer Tomcat6

    # service Tomcat6 start

  5. vérifiez localhost: page web 8080

  6. vérifier que Tomcat montre votre projet
    si non:

    • vérifier le lien symbolique et redémarrer le service Tomcat6
    • ou ajouter manuellement avec la page Web du gestionnaire Tomcat
      a) Nom du projet
      b) Se chemin du fichier web.xml
      c) Valable
      d) démarrez votre projet (à partir d'une page Web)

pour Fedora 13 et sous, il y a un problème, comment le résoudre:

# chmod -R g+w /var/log/Tomcat6 /etc/Tomcat6/Catalina  
# chmod -R g+w /usr/share/Tomcat6/work/  

archiver les fichiers de log situés dans/var/log/Tomcat6/s'ils sont plus "permission refusée" message

2
bioinfornatics

Sur mon PC, je devais ouvrir à nouveau l'entrée Tomcat6 après la 7ème étape mentionnée ci-dessus, puis changer l'option par défaut sous Server locations à Use Tomcat installation.

1
Naushin Shaikh