最近使用weblogic部署项目,同样的一个项目,部署到非集群的domain上可以正常部署,部署到集群下的所有server也可以正常部署,但是部署到集群下面的单个节点的时候却不能部署,出现如下异常日志:
weblogic.management.DeploymentException: [HTTP Session:100083]The webapp: MVQP.war in application: MVQP has PersistenceStoreType set to: replicated_if_clustered for http sessions, but the target list does not contain all members of cluster: centerCluster1. Inhomogeneous deployment for replicated sessions is not allowed.
at weblogic.servlet.internal.session.TargetValidator.validateTargetting(TargetValidator.java:31)
at weblogic.servlet.internal.session.SessionContext.getInstance(SessionContext.java:379)
at weblogic.servlet.internal.WebAppServletContext.initSessionContext(WebAppServletContext.java:1236)
at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:452)
at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:493)
Truncated. see log file for complete stacktrace
错误原因:
在weblogic.xml中多配置了
<wls:session-descriptor>
<wls:persistent-store-type>replicated_if_clustered</wls:persistent-store-type>
</wls:session-descriptor>
这个参数的意思是
如果 Web 应用程序部署于群集服务器上,则会复制session在所有集群服务器之间。
因为当前的项目是部署到集群下面,但是却只是部署到集群的单个节点上,而配置了此个参数,weblogic会主动负责session到所有节点,这样就是矛盾的了,所以会出现上面的异常日志。将此段配置注释掉即可。