gpt4 book ai didi

java - 强制执行 javax.faces.application.ViewExpiredException 以测试应用程序

转载 作者:行者123 更新时间:2023-11-30 06:18:24 25 4
gpt4 key购买 nike

我想测试我的 Web 应用程序 (JSF 2.2),它有一个自定义的 Esxception 处理程序工厂。现在我想知道在抛出 javax.faces.application.ViewExpiredException 时是否一切都按预期工作。有什么办法可以减少等待获得此异常的时间吗?以编程方式抛出它不是一种选择,因为我希望有一个几乎 100% 的生产测试场景。

最佳答案

就我而言,在服务器端保持 JSF View 状态的同时强制 session 过期应该足够了:

Setting STATE_SAVING_METHOD to client has however an additional functional advantage: it prevents ViewExpiredExceptions when the session has expired or when the client opens too many views.

因此,作为 javax.faces.STATE_SAVING_METHOD 默认为 server,您只需为 Http Session 指定您想要的超时时间:

<session-config>
<session-timeout>2</session-timeout>
</session-config>

作为替代方案,您可以选择设置自己的 View 限制。这取决于具体的 JSF 实现,Mojarra 默认为 16,MyFaces 默认为 20。对于第一个,您可以使用 com.sun.faces.numberOfLogicalViews 来减少每个客户端同时接受的 View 数量。例如,当您在同一浏览器(同一 Http session )中打开四个选项卡时,将其设置为 3 应该会触发异常。

另请参阅:

关于java - 强制执行 javax.faces.application.ViewExpiredException 以测试应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650571/

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