2012-05-21 100 views
5

me sale el siguiente excepción en el inicio de mi aplicación web JSF:java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener

SEVERE: Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener 
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 

Esta mi archivo web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<display-name>J2S</display-name> 
<context-param> 
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>client</param-value> 
</context-param> 
<context-param> 
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> 
    <param-value>resources.application</param-value> 
</context-param> 
<context-param> 
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> 
    <param-value>true</param-value> 
</context-param> 
<context-param> 
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> 
    <param-value>true</param-value> 
</context-param> 
<context-param> 
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> 
    <param-value>false</param-value> 
</context-param> 
<context-param> 
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name> 
    <param-value>true</param-value> 
</context-param> 
<listener> 
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> 
</listener> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    welcome-file>index.xhtml</welcome-file> 
</welcome-file-list> 
</web-app> 

Cómo ¿Se produce esta excepción y cómo puedo resolverla?

+1

Asegúrate de que el jar myfaces esté en la carpeta lib de tu aplicación web. Puede descargar la biblioteca myfaces [aquí] (http://www.apache.org/dyn/closer.cgi/myfaces/binaries/myfaces-core-assembly-2.1.7-bin.zip). – Jeshurun

Respuesta

10

java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener

El ClassNotFoundException significa que la clase mencionada no se encuentra en la ruta de clases de tiempo de ejecución de la aplicación. La clase mencionada es parte de la implementación de JSF MyFaces. Necesita download MyFaces Core Distribution, descomprimir el archivo y colocar los archivos JAR encontrados en la carpeta /lib en la carpeta /WEB-INF/lib de su proyecto de webapp. Tenga en cuenta que MyFaces naves con tres myfaces-*.jar archivos, se deben poner ya sea tanto en los archivos JAR myfaces-api y myfaces-impl, o solo el archivo JAR en el myfaces-bundle/WEB-INF/lib.

+0

Gracias, el error desapareció cuando agregué myfaces-api y myfaces-impl pero obtuve el error de antera – jmt

+0

SEVERE: Ocurrió un error al inicializar MyFaces: javax.faces.context.ExceptionHandlerFactory java.lang.IllegalArgumentException: javax.faces.context. ExceptionHandlerFactory – jmt

+1

Presione el botón 'Ask Question' cada vez que tenga una nueva pregunta. – BalusC

1

Tuve el mismo problema al utilizar Tomcat7 en Eclipse. Tenía todos los archivos jar necesarios. Descubrí que se debía a una configuración incorrecta del servidor. Asegúrese, al crear un proyecto web dinámico en Eclipse, de elegir para Tomcat la configuración JSF, no la configuración predeterminada.

+1

También tengo un problema con el Tomcat. No entendí bien qué debo hacer, ¿podría aclararlo con más detalles, por favor? – Danijel

Cuestiones relacionadas