2

以下のタスクを再帰的に達成するために 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()
4

1 に答える 1