gpt4 book ai didi

javax.faces.application.ViewExpiredException : During load test

转载 作者:行者123 更新时间:2023-11-30 04:43:13 27 4
gpt4 key购买 nike

我们的应用程序使用的是 SUN JSF 1.2、WebSphere 7.0,我们仅在负载测试期间收到 ViewExpiredException

我已浏览以下链接

javax.faces.application.ViewExpiredException: View could not be restored

已经关注了大部分内容,

  1. 设置上下文参数,

    com.sun.faces.enableRestoreView11兼容性真的

  2. 通过在所有 JSP 页面顶部添加以下代码来指示浏览器不缓存动态 JSF 页面,

        res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 
    res.setHeader("Pragma", "no-cache");
    res.setDateHeader("Expires", -1);

当我们手动浏览应用程序时,我们没有遇到异常。我无法弄清楚这个问题。

请多多指教。

最佳答案

View 存储在 session 中。 session 中存储的默认最大 View 数为 15,在 Mojarra 中可通过 com.sun.faces.numberOfViewsInSession 上下文参数进行配置。

想象这样一种情况,最终用户在同一 session 中的至少 16 个不同的浏览器选项卡/窗口中打开一个带有表单(实际上是一个 View )的随机 JSF 页面。在第一个打开的选项卡/窗口中提交表单将抛出ViewExpiredException。也许负载测试期间也会发生同样的情况。负载测试最好创建不同的 session 。

正如您自己找到的答案中所述,唯一的解决方法是将 JSF 状态保存方法设置为 client 而不是 server。禁用浏览器缓存只是防止最终用户从浏览器缓存获取的页面上发生 ViewExpiredException(例如,通过按后退按钮等)。

关于javax.faces.application.ViewExpiredException : During load test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734273/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com