entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Excepción java.lang.NoClassDefFoundError

¡Hola!

Tengo el siguiente error de compilación para mi aplicación web con primefaces:

GRAVE: Excepción enviando evento inicializado de contexto a instancia
de escuchador de clase com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError

En el proyecto web tengo incluido un proyecto java que contiene todo la lógica de negocio. La clase que no encuentra está en el proyecto java que os comento.

He revisado el classpath y sí tengo incluido el proyecto que contiene la clase del error.

¡Muchísimas gracias!

3 Respuestas

3votos

alex_alvarez Puntos2160

Buenas,

mira en el .jar que compilas que realmente te esté exportando esas clases, porque seguramente no lo esté haciendo.

Igualmente he buscado por internet este error concretamente, y he encontrado esta respuesta, está en ingles, no sé si te servirá.

JSF is usually bundled in full fledged Java EE application servers.
However, Tomcat is a barebones JSP/Servlet container which bundles
only the JSP and Servlet APIs, no JSF API. If you want to use JSF on
Tomcat, you'd need to bundle the JSF libraries along with the webapp
in its /WEB-INF/lib folder, or to install JSF in Tomcat by placing the
JSF libraries in its /lib folder. Apparently that application is
designed for real Java EE applications servers and hence doesn't
bundle the JSF libraries in /WEB-INF/lib.

There are two JSF implementations available, Mojarra and MyFaces. The
com.sun.faces package indicates Mojarra, so download that one and put
it in webapp's runtime classpath (i.e. either in webapp's /WEB-INF/lib
or in Tomcat's /lib).

Saludos!

1voto

serrapos Puntos460

Los errores del tipo: java.lang.NoClassDefFoundError, son siempre debido a que no se encuentra la clase correspondiente, es decir, que no está en ninguno de los jar. Tal y como te dice alex_alvarez seguramente el otro proyecto no está generado correctamente y no cargará dicha clase.

Si estás usando maven o similar, muchas veces se debe a que tienes que realizar antes un install del proyecto secundario, antes de hacerlo del principal.

Saludos.

0voto

cloudman Puntos4020

Asegurate de que no tienes duplicación de librerías. Este error lo tuve el otro día y era por tener el mismo jar con dos versiones distintas, se conoce que no sabia a que jar dirigirse para buscar la clase que intentaba utilizar. Eliminé la versión antigua que no necesitaba (fué un descuido el dejarla) y funcionó perfecto.

Un saludo, espero que te ayude.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta