我编写了 wlst 脚本以递归方式实现以下任务
- 停止应用程序
- 取消部署应用程序
- 部署应用程序
每当我执行脚本时,要么取消部署要么部署只发生在 1 个应用程序中。对于其他应用程序,它失败并显示以下错误消息。您能帮我解决这个问题吗?
File "<iostream>", line 1116, in domainConfig
File "<iostream>", line 1848, in raiseWLSTException
WLSTException: Error cding to the MBean
<Feb 20, 2014 11:28:44 AM IST> <Warning> <JNDI> <BEA-050001> <WLContext.close() was called in a different thread than the one in which it was created.>
WLST 编写我写的脚本
import sys
import os
import getopt
#========================
#Usage Section
#========================
def usage():
print "Usage:"
print "java weblogic.WLST manageApplication.py -u username -p password -a adminUrl [<hostname>:<port>] -t deploymentTarget\n"
print "java weblogic.WLST manageApplication.py -u weblogic -p weblogic1 -a t3://localhost:7001 -t AdminServer\n"
sys.exit(2)
#========================
#Connect To Domain
#========================
def connectToDomain():
try:
connect('weblogic','weblogic1','t3://localhost:7001')
print 'Successfully connected to the domain\n'
except:
print 'The domain is unreacheable. Please try again\n'
exit()
#========================
#Application undeployment Section
#========================
def undeployApplication():
cd ('AppDeployments')
myapps=cmo.getAppDeployments()
for appName in myapps:
domainConfig()
cd ('/AppDeployments/'+appName.getName()+'/Targets')
mytargets = ls(returnMap='true')
domainRuntime()
cd('AppRuntimeStateRuntime')
cd('AppRuntimeStateRuntime')
for targetinst in mytargets:
curstate4=cmo.getCurrentState(appName.getName(),targetinst)
print '-----------', curstate4, '-----------', appName.getName()
deploymentName=appName.getName()
deploymentTarget=targetinst
print deploymentName
print deploymentTarget
stopApplication(deploymentName, targets=deploymentTarget)
undeploy(deploymentName, targets=deploymentTarget)
#========================
#Input Values Validation Section
#========================
if __name__=='__main__' or __name__== 'main':
try:
opts, args = getopt.getopt(sys.argv[1:], "u:p:a:t:", ["username=", "password=", "adminUrl=", "deploymentTarget="])
except getopt.GetoptError, err:
print str(err)
username = ''
password = ''
adminUrl = ''
deploymentTarget = ''
for opt, arg in opts:
if opt == "-u":
username = arg
elif opt == "-p":
password = arg
elif opt == "-a":
adminUrl = arg
elif opt == "-t":
deploymentTarget = arg
if username == "":
print "Missing \"-u username\" parameter.\n"
usage()
elif password == "":
print "Missing \"-p password\" parameter.\n"
usage()
elif adminUrl == "":
print "Missing \"-a adminUrl\" parameter.\n"
usage()
elif deploymentTarget == "":
print "Missing \"-c deploymentTarget\" parameter.\n"
usage()
#========================
#Main Control Block For Operations
#========================
def deployMain():
for line in open("c:\\wlst\\applicationsList.txt"):
temp_line = line
fields = temp_line.strip().split(",")
print(fields[0]+" "+fields[1])
deploymentName = fields[0]
deploymentFile = fields[1]
print deploymentName+" "+deploymentFile+" "+deploymentTarget+"/n"
deploy(deploymentName,deploymentFile,targets=deploymentTarget)
#==================
#main block
#=====================
connectToDomain()
undeployApplication()
deployMain()
disconnect()