Java EE 웹 응용 프로그램이 Glassfish 2.1과 잘 작동합니다. 지금은 3.1.1 글래스 피시로 마이그레이션하기를 원하지만 전쟁 파일의 성공적인 배포 후 오류 다음 제공합니다java.lang.IllegalStateException : 응답이 렌더링 된 후 ViewHandler 설정 시도가 잘못되었습니다.
WARNING: ApplicationDispatcher[/Myapp] PWC1231: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: Illegal attempt to set ViewHandler after a response has been rendered.
내 응용 프로그램 프레임 워크 다음 사용합니다.
- 스프링 프레임 워크 3.0.2
- JSF 2.0
- RichFaces
최종 3.3.3 그것은 JDK 1.6로 컴파일합니다.
이 문제는 어떻게 발생하며 어떻게 해결할 수 있습니까?
편집이
내가 richfaces에 대한 here
내 종속성을 제공하는 수정을 따랐다는 다음과 같습니다 : -
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api</artifactId>
<version>3.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-impl-jsf2</artifactId>
<version>3.3.3.Final</version>
</dependency>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-ui</artifactId>
<version>3.3.3.Final</version>
</dependency>
내 JSF 의존성이
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.2</version>
</dependency>
이래저래 다음과 같은 web.xml에 dded 상황에 맞는 PARAM은 : -
<application>
<navigation-handler >
org.navigation.CustomNavigationHandler
</navigation-handler>
<view-handler>
org.ajax4jsf.application.AjaxViewHandler
</view-handler>
<!-- <view-handler>
com.sun.facelets.FaceletViewHandler
</view-handler>-->
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
<message-bundle>MyMessages</message-bundle>
</application>
- : 내에서
얼굴-설정은 다음과 같다
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee" 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>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param>
같은 버전 2.5으로 내 응용 프로그램 설명을 수정
응용 프로그램이 성공적으로 배포되지만 이후 브라우저에서 응용 프로그램을 시작할 때 클래스 캐스트 예외 오류가 발생합니다.
서버 로그는 다음과 같다 :
INFO: myApp was successfully deployed in 21,635 milliseconds.
SEVERE: Error Rendering View[/login.xhtml]
javax.faces.FacesException: java.lang.ClassCastException: java.lang.String cannot be cast to javax.faces.component.UIComponent
at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1923)
은 내가 어떻게이 문제를 해결할 수 있습니까 ??
대단히 감사합니다. 지침을 따라 왔지만 여전히 오류가 발생했습니다. 편집을 참조하십시오. –
그건 다른 문제입니다. 이것은 구성 요소의'value' 속성 대신'binding' 속성을 잘못 사용하여 그 값을 백업 빈에 바인드 할 때 발생할 수 있습니다. 다른 예외에 대해서는 별도의 질문을하십시오. – BalusC