我正在尝试以群集模式运行jboss服务器(5.1.0)。我在同一主机中有两个节点。当我将这两个节点作为单独的URL访问时,它运行良好。
我正在使用Apache HTTP服务器使用代理平衡器(使用代理传递,代理反向配置)来平衡我的请求。当我访问Apache服务器URL时,它会尝试在两台计算机之间进行负载平衡。
我得到这个错误经常无法恢复login.xhtml并且相应的节点在那之后停止提供请求,有人能告诉我这里发生了什么吗?
Caused by: javax.faces.application.ViewExpiredException: viewId:/login.seam - Vi
ew /login.seam could not be restored.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.jav
a:185)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.jav
a:103)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
答案 0 :(得分:2)
此异常与JSF有关。
添加到web.xml
<context-param>
<param-name>org.ajax4jsf.handleViewExpiredOnClient</param-name>
<param-value>true</param-value>
</context-param>
并在所有页面的标题中(我建议创建一个公共标题)添加:
A4J.AJAX.onExpired = function(loc, expiredMsg){
if(window.confirm("Custom onExpired handler "+expiredMsg+" for a location: "+loc)){
return loc;
} else {
return false;
}
}