2012-05-21 12 views
5

ottengo la seguente eccezione all'avvio della mia applicazione 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) 

Questo mio file 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> 

Come è questa eccezione causata e come posso risolverlo?

+1

Assicurarsi che il jar myfaces sia nella cartella lib della propria app Web. È possibile scaricare la libreria myfaces [qui] (http://www.apache.org/dyn/closer.cgi/myfaces/binaries/myfaces-core-assembly-2.1.7-bin.zip). – Jeshurun

risposta

10

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

Il ClassNotFoundException significa che la classe citato non è presente nel classpath runtime dell'applicazione. La classe menzionata fa parte dell'implementazione JSF MyFaces. È necessario download la distribuzione principale di MyFaces, decomprimere il file e inserire i file JAR trovati nella cartella /lib nella cartella /WEB-INF/lib del progetto webapp. Si noti che MyFaces fornito con tre myfaces-*.jar file, si dovrebbe mettere sia entrambi i file JAR myfaces-api e myfaces-impl, o solo il file JAR myfaces-bundle nel /WEB-INF/lib.

+0

Grazie alla dispear errore quando l'aggiunta di MyFaces-api e MyFaces-impl ma ho avuto corrispondenza con un altro errore – jmt

+0

GRAVI: è verificato un errore durante l'inizializzazione MyFaces: javax.faces.context.ExceptionHandlerFactory java.lang.IllegalArgumentException: javax.faces.context. ExceptionHandlerFactory – jmt

+1

Si prega di premere il tasto 'Ask Question' ogni volta che si ha una nuova domanda. – BalusC

1

Ho avuto lo stesso problema con Tomcat7 su Eclipse. Ho avuto tutti i file jar necessari. Ho scoperto che era dovuto ad una configurazione errata del server. Assicurati, durante la creazione di un progetto Web dinamico su Eclipse, di scegliere per Tomcat la configurazione JSF, non quella predefinita.

+1

Ho anche problemi con il Tomcat. Non ho capito bene cosa devo fare, potresti chiarire con maggiori dettagli per favore? – Danijel

Problemi correlati