2013-06-18 10 views
5

Zajmuję się tworzeniem przykładowej aplikacji przy użyciu JSF 1.2 i PrimeFaces 3.5. Mam RAD na moim pulpicie i stworzyłem nowy dynamiczny projekt internetowy. Napisałem plik xhtml z tagiem edytora primeface. Ale kiedy uruchomiłem projekt, to rzuca "java.lang.ClassNotFoundException" dla FacesServlet, chociaż serwlet istnieje w ścieżce klas.Serwlety twarzy - wyjątek ClassNotFound

Moja web.xml wygląda następująco

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" 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> 
    PrimeFacesNew</display-name> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <!-- JSF mapping --> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <!-- Map these files with JSF --> 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>HelloWorld.xhtml</welcome-file> 
    </welcome-file-list> 
</web-app> 

i mój HelloWorld.xhtml wygląda to

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:p="http://primefaces.org/ui"> 
<h:head> 
</h:head> 
<h:body> 
    <h1>Hello World PrimeFaces</h1> 

    <h:form> 
     <p:editor value="This is PrimeFace editor" /> 
    </h:form> 

</h:body> 
</html> 

Dodałem poniżej słoików do mojego ścieżki klasy ..

myfaces- api-2.1.12.jar
myfaces-impl-2.1.12.jar
myfaces-bundle-2.1.12.jar
slf4j-api 1.7.5.jar
slf4j-proste 1.7.5.jar
primefaces-3.5.jar

i kiedy uruchamiane za pomocą kocur 6,0 w radianach, to jest wyrzucanie pod wyjątkiem ..

SEVERE: Error loading WebappClassLoader 
    delegate: false 
    repositories: 
    /WEB-INF/classes/ 
----------> Parent Classloader: 
[email protected] 
javax.faces.webapp.FacesServlet 
Throwable occurred: java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351) 
    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:566) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:599) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
Jun 18, 2013 1:15:10 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /primefaces threw load() exception 
Throwable occurred: java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351) 
    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:566) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
    at java.lang.reflect.Method.invoke(Method.java:599) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 

Główne składniki twarzy są również wyświetlane jako znak zapytania w RAD. Wypróbowałem wszystkie możliwe rozwiązania w Google, ale to nie zadziałało. Popraw mnie tam, gdzie robię źle ..

Dzięki.

+0

PrimeFaces 3.5 nie może działać w JSF 1.2, potrzebujesz JSF 2.X. –

+1

oh Nie jestem tego świadomy. Pozwól mi spróbować dodać słoiki 2.0 i spróbować. – samuelebe

+0

Alex: Używam myfaces-2.1.2.jar, a FacesServlet pochodzi z tego słoika. Tak, myślę, że używam jar JSF 2.1. – samuelebe

Odpowiedz

0

Musisz użyć jsf-impl.jar i jsf-api.jar, ponieważ używasz JSF 1.2. Inni ludzie również mają ten problem czytając this, który mówi o niekompatybilności i określasz ten sam błąd, który opisałem tutaj. Mam nadzieję, że pomoże to rozwiązać ten błąd classNotFound.

+1

Czy mógłbyś podać komentarz, dlaczego mnie oznaczyłeś, abym mógł zaktualizować swoją odpowiedź na podstawie Twojej opinii? (z góry dziękuję) –

0

jeśli masz classnotfoundExecption błąd dla serwletów zawsze sprawdź czy dodałeś wymagane biblioteki
w WEB-INF/lib folderu ...

słoiki dodane do budowania ścieżki nie są dostępne dla komponentów serwera ....

trzeba jawnie dodać słoiki tylko WEB-INF/lib folderu ...

5

Ten problem wystąpił do mnie ponieważ nie podałem ścieżki w opcji Wdrożenie we właściwościach projektu:

Kliknij prawym przyciskiem myszy na projekcie ---> wybierz "właściwości" -> Zestaw instalacji -> "DODAJ" opcję -> wybierz "kompilacja java wpisy ścieżek "-> wybierz ścieżkę