我正在尝试使用WLST在WebLogic 11上设置生产重新部署。 我正在使用的应用程序是标准的oracle简单应用程序: http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/12c/14-Redeployment--4465/redeploy.htm
首先,我已经从/tmp/deployversion1/simple.war部署了simple.war,并且已成功部署。 那个simple.war有MANIFEST.MF:
Manifest-Version: 1.0
Class-Path:
Created-By: Bill Bell
Weblogic-Application-Version: v1
然后,我尝试使用v2版本部署simple.war。它有明显的表现:
Manifest-Version: 1.0
Class-Path:
Created-By: Bill Bell
Weblogic-Application-Version: v2
从Oracle文档中,如果清单中有版本,我可能不会为deploy / redeploy提供versionIdentifier参数。 它适用于WebLogic 12。
我的WLST代码,执行重新部署是:
redeploy(appName = 'Simple', appPath = '/tmp/deployversion2/simple.war')
之后我发现,该应用程序尚未部署,并且在weblogic日志中:
<Dec 21, 2016 3:11:07 PM PST> <Error> <Deployer> <BEA-149091> <An attempt was made to deploy application 'Simple' with specified archive version 'v1'. However, the application archive as specified in the source has version 'v2'.>
但是如果我以这种方式重新部署(提供了versionIdentifier),它可以正常工作:
redeploy(appName = 'Simple', appPath = '/tmp/deployversion2/simple.war', versionIdentifier='v2')
此外,如果我再次进行部署,即使没有版本,它也能正常工作:
deploy(appName = 'Simple', appPath = '/tmp/deployversion2/simple.war')
最后,如果使用weblogic.Deployer部署应用程序,它可以正常工作:
java weblogic.Deployer -adminurl http://localhost:7001 -user weblogic -password ******** -redeploy -source /tmp/deployversion2/simple.war -name Simple
所以,我对此几乎没有任何疑问。
1)如何使用WLST for WebLogic 11和WebLogic 12使用一个脚本进行生产重新部署?
2)为什么WLST重新部署失败,但是如果参数相同,weblogic.Deployer -redeploy工作正常?
3)如果WebLogic 12的部署结果与重新部署结果完全相同,那么部署和重新部署之间的区别是什么?
4)我可以使用WebLogic 11 deploy()而不是redeploy()来避免BEA-149091错误吗?
感谢。