2013-06-18 2 views
5

Я разрабатываю пример приложения с использованием JSF 1.2 и PrimeFaces 3.5. У меня есть RAD на моем рабочем столе и создан новый динамический веб-проект. Я написал файл xhtml с тегом тега firstface. Но, когда я запускал проект, он бросает «java.lang.ClassNotFoundException» для FacesServlet, хотя сервлет существует в пути к классам.Faces Servlet - ClassNotFound Exception

Моя web.xml выглядит следующим образом

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

и мой HelloWorld.xhtml выглядит следующим образом

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

я добавил ниже банков в моих ..

классам

myfaces- api-2.1.12.jar
myfaces-impl-2.1.12.jar
myfaces-bundle-2.1.12.jar
SLF4J-апи-1.7.5.jar
SLF4J-простой 1.7.5.jar
primefaces-3.5.jar

и когда я бежал с помощью 6.0 в Tomcat РАУ, оно метание ниже исключением ..

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) 

Компоненты лицевой стороны также отображаются как знак вопроса в RAD. Я пробовал все возможные решения в Google, но для меня это не сработало. Пожалуйста, исправьте меня, где я делаю неправильно.

Спасибо.

+0

PrimeFaces 3.5 не может работать под JSF 1.2, вам нужен JSF 2.X. –

+1

О, я не знаю об этом. Позвольте мне попробовать добавить 2.0 баночки и попробовать. – samuelebe

+0

Alex: Я использую myfaces-2.1.2.jar, а FacesServlet - из этой банки. Итак, я думаю, что использую JSF 2.1 jar. – samuelebe

ответ

0

Вам необходимо использовать jsf-impl.jar и jsf-api.jar, поскольку вы используете JSF 1.2. Другие люди также сталкиваются с этой проблемой, прочитав this, в которой говорится о несовместимости, и вы указываете ту же ошибку, которая описана здесь. Надеюсь, это поможет вам устранить эту ошибку классаNotFound.

+1

, пожалуйста, укажите комментарий, почему вы отметили меня, чтобы я мог обновить свой ответ на основе ваших отзывов? (заранее спасибо) –

1

Faces Servlet класс не распознается от того, что вы добавили баночках myfaces-api-2.1.12.jar, myfaces-impl-2.1.12.jar

Добавить под баночки для WEB-INF/lib

Скачать jsf-impl-2.2.5, jsf-api-2.2.5 или от Maven зависимости jsf-api, jsf-impl

0

если вы получаете classnotfoundExecption ошибку для сервлетов всегда проверяйте, добавили ли вы необходимые библиотеки
впапка ...

банки добавили построить путь, не доступны для серверных компонентов ....

вы должны явно добавить банки в WEB-INF/lib папку только ...

5

Этот вопрос произошло со мной потому что я не предоставил путь в опции «Развертывание» в свойствах проекта:

Щелкните правой кнопкой мыши по проекту ---> выберите «свойства» -> «Установка развертывания» -> «ДОБАВИТЬ» - выберите «java build» пути "-> выбор пути

Смежные вопросы