java - 查看 mojarra 上的过期问题

标签 java jsf mojarra

我有一个大型 richfaces 树,可以选择树中的每个元素,通过 AJAX 加载内容并进行编辑,将您重定向到新页面。这一直很有效,直到我正在处理一个特别大的文档并且保存不再有效。您被重定向到显示正确内容的编辑页面,但尝试“保存”任何编辑会导致 ViewExpiredException。

我尝试调整很多参数,最终得到两个参数来修复它:

com.sun.faces.numberOfViewsInSession
com.sun.faces.numberOfLogicalViews

据我所知,每个值的默认值是 15,我将它们设置为荒谬的 500,应用程序再次运行。不幸的是,因为我不知道问题出在哪里,而且它是一个大型应用程序,所以我无法向您展示任何相关代码。

但问题是:这些参数到底有什么作用,什么可能导致我遇到这些异常以及什么是可接受的值?

更新

我不完全确定为什么这个问题被否决了,但如果是关于所谓的重复:我通过谷歌找到了那个帖子,但它提供的链接已经死了。除了参数的标准(和模糊)定义之外,似乎没有太多关于它们的信息。

最佳答案

当使用服务器端状态保存(默认)时,这两个参数可用于配置逻辑 View 和实际 View 的最大数量。

逻辑 View 是在每个 GET 请求上创建的顶级 View (例如,当您在新的浏览器窗口或选项卡中打开页面、在浏览器的地址栏中输入地址、iframe 时...)。每个逻辑 View 可以具有一定数量的关联实际 View 。实际 View 是在用户使用标准 JSF 机制浏览页面时创建的(例如,如果您导航到从 commandButton 中的 action 方法返回的页面)。两个 View 队列都使用LRU算法来决定何时删除 View ,并且这些队列的最大数量受到这两个参数的值的限制。

因此,com.sun.faces.numberOfViewsInSession 定义了每个逻辑 View 在 session 中存储的 JSF View 的最大数量,并且com.sun.faces.numberOfLogicalViews定义每个 session 存储的逻辑 View 的最大数量。

根据您提供的信息,怀疑配置com.sun.faces.numberOfViewsInSession解决了您的问题,但您必须进一步调查为什么会创建如此多的 View 。

附加链接:

关于java - 查看 mojarra 上的过期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15025398/

相关文章:

java - 无法连接Hadoop

jsf-2 - <c :if> Tag does not reduce the component tree in composite components

jsf-2 - 配置 JBoss AS 7.1.1 与 Mojarra 2.0.4 问题

ajax - JSF 2 部分请求不使用工厂中的 FacesContext

java - 通用公共(public)集合

java - 为什么 Android Studio 自动导入内联类而不是在我的代码顶部?

Java 将 html 与 css+js 转换为 pdf

java - JPA 在一个项目中插入触发器之前执行,并在另一个项目中具有不同的行为

javascript - 避免在丰富的某些列中发生 onRowClick 事件 :dataTable

maven - 是否可以使 JSF FacesServlet 与 AspectJ 一起工作?