我正在编写一个 WLST 脚本来使用 WebLogic 11g 部署应用程序。问题是当我部署一个应用程序(版本A
),取消部署它,然后部署版本B
,它部署版本A
。
如果我尝试通过删除tmp/_WL_user/appname/
文件夹来解决这个问题,那么它将不会部署A
,或者B
因为它在应用程序的 tmp 文件夹中查找(并且因为我将其清除而失败)。我正在使用 nostage 选项,所以我不明白为什么它会缓存任何东西。
您能提供的任何帮助将不胜感激。谢谢!
可能版本 A 的取消部署不成功,版本 B 从未部署。
不确定您在 WLST 脚本中有什么,您可以尝试以下操作:
# let's say the appName is testApp
# can move all of these properties to a props file
appName='testApp'
appPath='/scratch/user/testApp.war'
appTarget='AdminServer'
username='weblogic'
password='weblogic1'
adminURL='t3://hostname:adminport'
# start deploy/undeploy code
connect (username, password, adminURL)
for app in cmo.getAppDeployments():
currAppName = app.getName()
if currAppName == appName :
print('Application' + appName + ' already exists, undeploying...')
undeploy(appName)
# sleep is just to make sure that we don't attempt deploy immediately i.e before server is finished with undeploying
# more like a safe side one, may not be required also
java.lang.Thread.sleep(60000)
print('Now deploying ' + appName)
deploy(appName, appPath, appTarget)
disconnect()