2012-04-03 2 views
0

JSF 2.0을 사용하여 웹 응용 프로그램을 만들고 WEB-INF> lib 폴더에 jaf-facelets.1.1.10 jar 파일이 있으므로 지금 제거하려고합니다. 그래서 내장 된 facelets 2.0을 사용할 수 있습니다. this Question which balusC answered을 통해 읽고 있었고, 내가 말한 부분을 제외하고는 ViewHandlerWrapper에 의해 FaceletViewHandler를 대체해야합니다. 왜냐하면 나는 this question을 보았지만, 내 프로젝트에는 faceletViewhandler 클래스가 없다.Facelets 1.x에서 Facelets 2.0으로 마이그레이션

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>miloWeb</display-name> 
    <welcome-file-list> 
    <welcome-file>faces/pages/index.xhtml</welcome-file> 
    </welcome-file-list> 
    <listener> 
    <listener-class>com.bravo.listeners.ServletListener</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>/faces/*</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <servlet-name>PdfServlet</servlet-name> 
     <servlet-class>com.bravo.servlets.PdfServlet</servlet-class> 
    </servlet>  
    <servlet-mapping> 
     <servlet-name>PdfServlet</servlet-name> 
     <url-pattern>/PdfServlet</url-pattern> 
    </servlet-mapping> 
    <filter> 
     <filter-name>MyFacesExtensionsFilter</filter-name> 
     <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>MyFacesExtensionsFilter</filter-name> 
     <servlet-name>Faces Servlet</servlet-name> 
    </filter-mapping> 
    <context-param> 
    <description> 
     This is to Have separated faces.config files    
    </description> 
    <param-name>javax.faces.CONFIG_FILES</param-name> 
    <param-value> 
     /pages/history/faces-config.xml, 
     /pages/contactInformation/faces-config.xml, 
     /pages/childHealthRecord/faces-config.xml, 
     /pages/dashboard/faces-config.xml, 
     /pages/insurance/faces-config.xml, 
     /pages/search/faces-config.xml, 
     /pages/labs/faces-config.xml, 
     /pages/patient/faces-config.xml, 
     /pages/physical/faces-config.xml, 
     /pages/notes/faces-config.xml, 
     /pages/scheduler/faces-config.xml, 
     /pages/settings/faces-config.xml, 
     /pages/orderEntry/faces-config.xml, 
     /pages/vitals/faces-config.xml 
    </param-value> 
    </context-param> 
    <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> 
</web-app> 

그리고 당신이 볼 수 있듯이, 내가 가진 : 지금과 같은

내 인 webxml 내가 아무것도 놓치지 않았다 taht를 확인하거나, 내가 안 뭔가를 참조하고있어하십시오 (다음과 같습니다 꽤 많은 얼굴 - CONFIGS은 내가

<application> 
     <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> 
    </application> 

을 제거 그리고 지금은 (내가 탐색처럼 필요하지 않은 일부 기능을 알고 있지만, 정말 그것을 taht를 방법을 유지하기 위해 상처를합니까?) 다음과 같습니다

일부 변경을하고 그런 식으로 떠난 후 0

, 나는 tomcatv7에서 프로젝트를 실행하고이 오류 수 :

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config 
    com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:452) 
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140) 
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) 
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) 
    org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349) 

합니까 나는이 같은 내 파일을 가지고 얻을 것이다 오류처럼? 왜냐하면 내가 한 일은 jar-facelets.1.1.10.jar을 제거하고 이제는이 오류가 발생하기 때문입니다. 하지만 애플 리케이션이 잘 작동 B4 내가 facelets 항아리를 제거, 그래서이 두 항아리 사이의 관계는 무엇입니까 ??

내가 jstl.jar를 추가하는 시도했지만 작동하지 않는, 그냥 나에게 보여줍니다이 :

it doesn't make sense to me

답변

2

오류가 어디 JSF 같은 폴더에 JSTL-1.2.jar available here을 포함 건의 항아리가 있습니다. 이 JSF 2.0 기본보기 선언 언어 (VDL)로 Facelets의를 채택하기 때문에 Facelets의 2.0 항아리 필요가 없으며, 지금은

+0

항아리를 넣었습니다.하지만 이상하게 들었습니다. 전에 불평하지 않았습니다. 나는 그것을 추가했고, 이제 서버에서 실행하려고 할 때 (index.xhtml을 열려고 시도했다.) 파일을 열거 나 저장할 것인지 묻는 팝업이 표시된다. 나는 전에 이것을 얻지 못했습니다. – Myy

0

(모두에서 MyFaces 및 인 Mojarra에 대한)이 문제를 해결하려면 JSF 항아리 내부에 번들로 제공됩니다

문제는 jstl-impl.jar 및 jstl-api.jar을 추가하고 최신 jsf-impl.jar 및 jsf-api.jar로 업데이트해야했습니다. 그것은 그것을 고쳤다.

facelets.1.10.jar가있을 때 왜 절대로 불만하지 않았는지 모르겠다.

+0

webapp에는 JSP API/impl이 없어야합니다! 그것을 제공해야하는 서블릿 컨테이너 자체입니다. 귀하의 웹 응용 프로그램은 이제 이식 할 수 없으며 JSP 라이브러리의 출처와 동일한 servletcontainer 작성/버전에서만 작동합니다. – BalusC

+0

? 그래서 나는 그들을 제거해야합니까? 아니면 그걸 고정 할 수 없다고 말하는거야? : – Myy

+0

http://stackoverflow.com/questions/4441713/migrating-from-jsf-1-2-to-jsf-2-0/4532870#4532870 우리 WEB_INF에서 jsf 2.0 jar를 삭제하라는 메시지가 표시됩니다. 그것은 옳았다 고 생각합니다 ... 지금은 어떻게해야합니까? – Myy

관련 문제