Jakarta ee java.lang.IllegalStateException:在呈现响应后非法尝试设置ViewHandler

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

我的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 ViewHandler after a response has been rendered.
我的应用程序使用以下框架

  • Spring框架3.0.2
  • JSF2.0
  • RichFaces 3.3.3决赛
它是用JDK1.6编译的

这个问题是如何产生的?我如何解决它

编辑

我已遵循提供的修改

我对richfaces的依赖关系如下:-

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