2011-03-17 4 views
3

임 톰캣 6에서 내 프로젝트를 실행하려고 할 때이 문제가 :java.lang.RuntimeException가 : 찾을 수 없습니다 FacesContext (JSF 1.2 + Primefaces + 톰캣 6)

SEVERE: Servlet.service() for servlet jsp threw exception 
java.lang.RuntimeException: Cannot find FacesContext 
     at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:2122) 
     at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1933) 
     at org.apache.jsp.Contato_jsp._jspx_meth_f_005fview_005f0(Contato_jsp.java:125) 
     at org.apache.jsp.Contato_jsp._jspService(Contato_jsp.java:102) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 

.......

이미 클래스 경로에 jsf-impl.jar, jsf-api.jar 및 jstl-1.2.jar를 추가했습니다. 다른 lib가 필요합니까? 다음에서 확인할 수 있습니다 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"> 

    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <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>*.faces</url-pattern> 
    </servlet-mapping> 

    <servlet> 
     <servlet-name>Resource Servlet</servlet-name> 
     <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Resource Servlet</servlet-name> 
     <url-pattern>/primefaces_resource/*</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 


</web-app> 

어떤 생각입니까? pom.xml이나 그와 비슷한 것에 의존성을 설정해야합니까? 도와 줘서 고맙다.

+0

JSF2 애플리케이션에 web.xml 구성을 사용하고있는 것처럼 보입니다 (JSF 1.2에는 javax.faces.PROJECT_STAGE가 존재하지 않습니다). 그 이외에 BalusC로부터의 응답은 당신의 문제를 다루어야합니다. –

+0

사이드 권장 사항으로 컴포넌트 트리를 정의하기 위해 facelets을 사용하고 jsp를 사용하지 말 것을 제안합니다. –

답변

12

FacesContextFacesServlet으로 생성됩니다. 이 예외는 FacesServlet이 작업을 수행하지 않았 음을 의미합니다. 패턴 *.faces과 일치하는 URL에서 수신 대기하도록 FacesServlet을 구성했습니다. 따라서 요청 URL (브라우저 주소 표시 줄에 나타나는 요청 URL)이 호출되도록이 URL과 일치하는지 확인해야합니다. 즉

, 당신은 구체적인 문제되지

http://localhost:8080/context/Contato.jsp 

관련없는에 의해

http://localhost:8080/context/Contato.faces 

하여 페이지를 열어야합니다, 잘 모르겠어요 당신의 질문 제목에서 "PrimeFaces"가하는 일은,하지만 PrimeFaces가 JSP를 전혀 지원하지 않는다는 것을 경고하기를 원했습니다. 후속 Facelets (XHTML) 만 지원합니다. Facelets 파일 대신 JSP 파일에서 Facelet 용 PrimeFaces 태그를 사용하면 일반 바닐라 HTML로 해석 될뿐입니다.

관련 문제