从 WAS8 迁移到 WAS9 时遇到 myFaces 错误?

Posted

技术标签:

【中文标题】从 WAS8 迁移到 WAS9 时遇到 myFaces 错误?【英文标题】:Facing myFaces error when migrating from WAS8 to WAS9? 【发布时间】:2021-03-29 04:52:49 【问题描述】:

我们目前正在将我们的应用程序从 WAS8 迁移到 WAS9。我们使用 JSF 2.2 和 Primefaces 4.0。在 WAS8 应用程序中工作正常。但在 WAS9 中,我们收到以下错误:

未捕获的 service() 异常根本原因 Faces Servlet:javax.servlet.ServletException:/pages/xyz.xhtml - 找不到视图标识符的已保存视图状态:/pages/xyz.xhtml

我们的 web.xml 如下所示:

<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
        <param-value>true</param-value>
    </context-param>
    
    <context-param>
        <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name>
        <param-value>true</param-value>
    </context-param>
    
   <context-param>
        <param-name>facelets.BUILD_BEFORE_RESTORE</param-name>
        <param-value>true</param-value>
    </context-param>

尝试将 STATE_SAVING_METHOD 更改为客户端。但这不起作用。谁能帮我解决这个错误。提前致谢。

【问题讨论】:

【参考方案1】:

我想发表评论,但我没有足够的积分。

如果没有更多信息,很难说是什么原因造成的。

Web.xml 看起来不错。否则可能导致此错误的因素是会话过期或 cookie 问题。

还有一种可能是javax.faces.ViewState可能被破坏了?

我的想法是 org_apache_myfaces_NUMBER_OF_VIEWS_IN_SESSION 可能需要增加?

http://myfaces.apache.org/core20/myfaces-impl/webconfig.html#org_apache_myfaces_NUMBER_OF_VIEWS_IN_SESSION

但请阅读下面有关 viewexpiredexception 的更多信息,我希望这可以帮助您识别问题。 javax.faces.application.ViewExpiredException: View could not be restored

【讨论】:

以上是关于从 WAS8 迁移到 WAS9 时遇到 myFaces 错误?的主要内容,如果未能解决你的问题,请参考以下文章

从 JSF 1.2 迁移到 JSF 2.0 后,每次导航都出现 ViewExpiredException

Web项目未在Websphere 9中启动,BValInterceptor的CDI相关异常

使用捆绑在 webapp 中并在 Wildfly 上运行的 myfaces 时未调用 CDI Bean 方法

DefaultDataSource.getConnection(userID, password) 失败

p:column filterValue属性的PropertyNotFoundException

f:ajax 监听器不能与 h:selectOneRadio 一起使用