Jakarta ee java.lang.IllegalStateException:在呈现响应后非法尝试设置ViewHandler
我的JavaEEWeb应用程序在Glassfish 2.1上运行良好。现在我想迁移到Glassfish 3.1.1,但成功部署war文件后,会出现以下错误:Jakarta ee java.lang.IllegalStateException:在呈现响应后非法尝试设置ViewHandler,jakarta-ee,spring-mvc,jsf-2,glassfish,richfaces,Jakarta Ee,Spring Mvc,Jsf 2,Glassfish,Richfaces,我的JavaEEWeb应用程序在Glassfish 2.1上运行良好。现在我想迁移到Glassfish 3.1.1,但成功部署war文件后,会出现以下错误: WARNING: ApplicationDispatcher[/Myapp] PWC1231: Servlet.service() for servlet Faces Servlet threw exception java.lang.IllegalStateException: Illegal attempt to set ViewHan
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.
我的应用程序使用以下框架
- Spring框架3.0.2
- JSF2.0
- RichFaces 3.3.3决赛
<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>
<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>
<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>
我如何解决这个问题
java.lang.IllegalStateException:在呈现响应后非法尝试设置ViewHandler
在JSF2.x环境中使用JSF1.2目标组件库时,这是一条典型的错误消息。RichFaces 3.3.x是为JSF 1.2设计的,但是Glassfish 3.1提供了JSF 2.1,而不是Glassfish 2.1中的JSF 1.2。在JSF2中,在视图处理方面有很多变化,因为JSP已经被弃用并被Facelets取代
RichFaces为如何在JSF2环境中安装和配置RichFaces 3.3.3提供了极好的指南:。解决此特殊异常的关键步骤是添加以下上下文参数,该参数将禁用JSF 2 Facelets视图处理程序:
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param>
javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER
符合事实的
但也需要采取更多措施。仔细阅读指南
java.lang.IllegalStateException:在呈现响应后非法尝试设置ViewHandler
在JSF2.x环境中使用JSF1.2目标组件库时,这是一条典型的错误消息。RichFaces 3.3.x是为JSF 1.2设计的,但是Glassfish 3.1提供了JSF 2.1,而不是Glassfish 2.1中的JSF 1.2。在JSF2中,在视图处理方面有很多变化,因为JSP已经被弃用并被Facelets取代
RichFaces为如何在JSF2环境中安装和配置RichFaces 3.3.3提供了极好的指南:。解决此特殊异常的关键步骤是添加以下上下文参数,该参数将禁用JSF 2 Facelets视图处理程序:
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param>
javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER
符合事实的
但也需要采取更多措施。仔细阅读指南。我必须从应用程序中删除Ajax4jsf库,然后才能消除此错误。显然,Ajax4jsf库与JSF2.0不兼容 这是我找到这个的地方。
我必须从应用程序中删除Ajax4jsf库,然后才能消除此错误。显然,Ajax4jsf库与JSF2.0不兼容 这是我找到这个的地方。
非常感谢您的帮助。我已经按照说明进行了操作,但是仍然出现了一个错误。你能看一下编辑吗?这是另一个问题。当您错误地使用组件的
绑定
属性而不是值
属性将值绑定到支持bean时,可能会发生这种情况。请针对不同的例外情况提出单独的问题。非常感谢您的帮助。我已经按照说明进行了操作,但是仍然出现了一个错误。你能看一下编辑吗?这是另一个问题。当您错误地使用组件的绑定
属性而不是值
属性将值绑定到支持bean时,可能会发生这种情况。请针对不同的例外情况提出单独的问题。
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)
<context-param>
<param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
<param-value>true</param-value>
</context-param>