我们正在运行一个奇怪的场景。我们有一个命令链接/按钮在我们的页面上,每当用户点击它的动作方法被调用多次。
我们在Websphere门户6.2上使用JSF 1.2。我们尝试将enableHighCompatibility
设置为true
,并在动作方法完成后调用facesContext.renderResponse()
,只是为了让框架明白动作已经完成,请渲染页面。
上面的2已经使最多调用一次,但是我们仍然有一些场景,在后台bean中调用多次动作方法。
如果这发生在Websphere
Application Server 7 (WAS7)中,原因可能是您的读/写超时值。WAS7在
应用服务器-> #集群名称# -> Web服务器插件属性->读/写超时
默认为60秒。因此,如果您的事务完成时间超过60秒,将触发第二次表单提交。
可以通过将超时值更改为0秒(0在WAS中表示无限)来避免此问题。这将确保您的操作方法只被调用一次。