代码之家  ›  专栏  ›  技术社区  ›  user1251973

IBM Websphere-用于AutoDeployment的wsadmin脚本

  •  -1
  • user1251973  · 技术社区  · 9 年前

    你能看看下面的问题吗?

    import time
    node = AdminConfig.getid('/Node:node111/')
    print node
    print "sss" +AdminControl.queryNames('WebSphere:type=Server,*')
    cell = AdminControl.getCell()
    print " Cell name is --> "+ cell
    warLoc='/home/test/PA_Test.war'
    appName='PA_Test'
    cellName=AdminControl.getCell()
    print cellName
    nodeName=AdminControl.getNode()
    print "hello"
    print " nodeName is --> "+ nodeName
    appManager=AdminControl.queryNames('cell='+cellName+',node=node111,type=ApplicationManager,process=WebSphere_Portal,*')
    print appManager
    application = AdminConfig.getid("/Deployment:"+appName+"/")
    print 'printing application name in next line'
    print application
    len(application)
    print application
    len(application)
    var1 = len(application)
    if var1:
       print "Application exists"
       print "before uninstall"
       AdminApp.uninstall('PA_Test')
       print "after uninstall"
       AdminConfig.save()
    else:
       print "Application doesnot exist"
    print "Before install"
    print AdminApp.install(warLoc,'[-target default -usedefaultbindings -defaultbinding.virtual.host default_host]')
    print "Done from My Side"
    print "After install"
    AdminConfig.save()
    time.sleep(30)
    AdminControl.invoke(appManager , 'startApplication',appName)
    print "The script is completed."    
    
    Below is the successful message:
    
     ADMA5016I: Installation of PA_Test.war154ed2178ed started.
     ADMA5058I: Application and module versions are validated with versions of deployment targets.
     ADMA5005I: The application PA_Test.war154ed2178ed is configured in the WebSphere Application Server repository.
     ADMA5005I: The application PA_Test.war154ed2178ed is configured in the WebSphere Application Server repository.
     ADMA5081I: The bootstrap address for client module is configured in the WebSphere Application Server repository.
     ADMA5053I: The library references for the installed optional package are created.
     ADMA5001I: The application binaries are saved in /opt/IBM/WebSphere/wp_profile/wstemp/Script154ed215c59/workspace/cells/inpudingpwmtst1Cell/applications/PA_Test.war154ed2178ed.ear/PA_Test.war154ed2178ed.ear
    

    现在我可以部署war了,但文件名正在更改为PA_Test.war154ed2178ed。但它实际上应该是PA_Test.ear。你能帮我修改一下当前的脚本吗?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Marcin Płonka    9 年前

    简短回答:

    print AdminApp.install(warLoc, [
        '-appname', 'PA_Test.ear',
        '-target', 'default',
        '-usedefaultbindings',
        '-defaultbinding.virtual.host', 'default_host'
    ])
    

    更短的:使用 WDR .

    您需要一个应用程序清单文件 PA_Test.wdra :

    PA_Test.ear pa.war
        target default
        usedefaultbindings
        defaultbinding.virtual.host default_host
    

    …和Jython脚本来导入此清单:

    alreadyInstalled = 'PA_Test.ear' in AdminApp.list().splitlines()
    importApplicationManifest('PA_Test.wdra')
    save()
    sync()
    while AdminApp.isAppReady('PA_Test.ear') != 'true':
        time.sleep(10)
    if not alreadyInstalled:
        for appMgr in queryMBeans(type='ApplicationManager', process='WebSphere_Portal'):
            appMgr.startApplication('PA_Test.ear')
    

    披露 : 我是WDR的贡献者和维护者