2016-05-26 57 views
-1

您可以看看下面的問題嗎?IBM Websphere - 用於AutoDeployment的wsadmin腳本

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 

現在我能夠部署的戰爭,但文件名越來越變更PA_Test.war154ed2178ed.ear但它實際上應該是PA_Test.ear。你能幫助如何改變當前的腳本嗎?

回答

1

簡短的回答:

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的貢獻者和維護者

+0

通過您的腳本Marcin,我可以部署它。還有一個問題,即如何通過使流程自動化來將portlet映射到頁面? – user1251973

相關問題