2012-05-21 12 views
5

alıyorum benim JSF web uygulaması başlangıçta istisna aşağıdadır: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) 

Bu benim web.xml dosyası

<?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> 

nasıl Bu istisna neden oldu ve nasıl çözebilirim?

+1

Fare kavanozlarının web uygulamanızın lib klasöründe olduğundan emin olun. Myfaces kütüphanesini buradan indirebilirsiniz (http://www.apache.org/dyn/closer.cgi/myfaces/binaries/myfaces-core-assembly-2.1.7-bin.zip). – Jeshurun

cevap

10

Java.Lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener

ClassNotFoundException belirtilen sınıf uygulamanın çalışma zamanı sınıf yolunda eksik olduğu anlamına gelir. Söz konusu sınıf, MyFaces JSF uygulamasının bir parçasıdır. MyFaces Core Distribution ürününe download'a ihtiyacınız var, dosyayı açın ve webapp projenizin /WEB-INF/lib klasöründeki /lib klasöründe bulunan JAR dosyalarını koyun. Üç myfaces-*.jar dosyalarla MyFaces gemiler, sen ya hem myfaces-api ve myfaces-impl JAR dosyaları, veya yalnız/WEB-INF/lib yılında myfaces-bundle JAR dosyası koymak gerektiğini unutmayın.

+0

Hatalar myfaces-api ve myfaces-impl eklediğimde dağınıklığı sağladım ama anter hatası aldım – jmt

+0

SEVERE: MyFaces başlatılırken bir hata oluştu: javax.faces.context.ExceptionHandlerFactory java.lang.IllegalArgumentException: javax.faces.context. İstisnaHandlerFactory – jmt

+1

Lütfen yeni bir sorunuz olduğunda "Soru Sor" düğmesine basın. – BalusC

1

Aynı sorun, Eclipse üzerinde Tomcat7'yi kullanarak da vardı. Gerekli tüm jar dosyalarını aldım. Sunucunun yanlış yapılandırmasından kaynaklandığını keşfettim. Eclipse'de bir dinamik web projesi oluştururken, varsayılan olanı değil, Tomcat JSF yapılandırmasını seçmek için emin olun.

+1

Ayrıca Tomcat ile ilgili bir sorunum var. Ne yapmam gerektiğini tam olarak anlamadım, daha fazla ayrıntıya açıklık getirir misiniz lütfen? – Danijel