2011-10-31 9 views
25

parecen tener un problema al iniciar mi aplicación Java:java.lang.NoClassDefFoundError: org/apache/Juli/registro/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

Probamos la solución aquí: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

Pero veo Tomcat -juli.jar ya. También estoy usando Tomcat 7. ¿Qué podría estar mal?

Respuesta

15

Su vm no encuentra la clase org/apache/juli/logging/LogFactory compruebe si esta clase está presente en el archivo tomcat-juli.jar que usa (descomprímalo y busque el archivo), si no está presente descargue la biblioteca del sitio web de apache si está presente ponga el tomcat-juli.jar en una ruta (el directorio lib) que Tomcat usa para cargar clases. Si su Tomcat no lo encuentra, puede copiar el jar en el directorio lib del JRE que está utilizando.

0

En nuestro caso, se estaba utilizando la versión incorrecta del plugin para Eclipse Sysdeo Tomcat 3.5. La solución:

  • Uso tomcatPluginV33 en lugar de tomcatPluginV321 (extracto de C:\eclipse\dropins)
  • Asegúrese de que DevloaderTomcat7.jar se colocó en el gato lib carpeta
  • En Ventana> Preferencias> Tomcat, establecer la versión de Tomcat a 7.x

Este problema puede haber sido única en nuestro medio ambiente; pero, lo registraré aquí de todos modos, por el bien de la posteridad.

7

Si está utilizando jsvc ejecutar Tomcat como Tomcat (/etc/init.d/tomcat ejecutar como root), editar y añadir /etc/init.d/tomcat$CATALINA_HOME/bin/tomcat-juli.jar a CLASSPATH.

8

Esto sucedió a mí porque yo estaba usando un archivo de Tomcat 5.5 catalina.sh con una instalación de Tomcat 7. El uso del catalina.sh que vino con la instalación de Tomcat 7 solucionó el problema.

+0

Esto no es una respuesta. Esto debería haber estado en los comentarios. –

+6

@AdityaSingh Esta ** es ** una respuesta. incluye el diagnóstico del problema y la especificación de una resolución. Resulta ser ** succint ** - que de ninguna manera lo descalifica. – javadba

7

Me encontré con este problema al utilizar tomcat-embed-core::7.0.47, de Maven. No estoy seguro de por qué no añadir tomcat-util como una dependencia de tiempo de ejecución, por lo que añade mi propia dependencia de tiempo de ejecución para mi propio proyecto.

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

Ayudó mucho, usando Spring Boot con una versión de Tomcat compatible con Servlet 3.0. Tuve que agregar esto, gracias! (El mío está en el alcance "provisto" actualmente). – electrotype

0

En Ubuntu 14.04 LTS

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

ha solucionado el problema para mí. Había un enlace simbólico allí/opt. Dentro del directorio opt allí donde ../../java enlaces que no apuntan a/usr/share/java ya que los archivos estaban físicamente en/opt

3

que tenían el mismo problema, lo que me ayudó fue:

  1. Haga clic derecho sobre el proyecto.
  2. clic 'Propiedades'
  3. Ir a 'Java Build Path'
  4. Y luego: 'Bibliotecas'
  5. Allí, haga clic en: Añadir tarros externos
  6. Añadir: '' Ruta/Hacia/Tomcat/Bin/tomcat-juli.jar

Hecho.

Cuestiones relacionadas