我想测试我的webapplication(JSF 2.2),它有一个自定义的Esxception Handler Factory。 现在我想知道抛出javax.faces.application.ViewExpiredException时是否一切都按预期工作。有什么办法,我可以减少等待获得此异常的时间吗? 以编程方式抛出它不是一种选择,因为我希望有一个接近100%的高效测试场景。
答案 0 :(得分:2)
就我而言,当你在服务器端保持JSF视图状态时,强制会话过期就足够了:
将STATE_SAVING_METHOD设置为客户端具有额外的功能优势:当会话过期或客户端打开过多视图时,它会阻止ViewExpiredExceptions。
因此,当javax.faces.STATE_SAVING_METHOD
默认为server
时,您只需要为Http会话指定所需的超时时间:
<session-config>
<session-timeout>2</session-timeout>
</session-config>
作为替代方案,您可以选择设置自己的观看次数。这取决于具体的JSF实现,Mojarra默认为16,MyFaces默认为20.对于第一个,您可以使用com.sun.faces.numberOfLogicalViews
来减少每个客户端同时接受的视图数量。例如,如果在同一浏览器中打开了四个选项卡(相同的Http会话),则将其设置为3应该触发异常。
另见:
答案 1 :(得分:2)
答案 2 :(得分:1)
Web.xml中
你应该有类似的东西:
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
超时以分钟为单位,因此设置为1