近期一個項目屬於測試過渡期,bug修復比較頻繁,每次都會伴隨着項目的打包、上傳、發布,此類重復操作近乎每天都會進行,剛好最近在看python相關資料,決定重新將此前學習的weblogic的wlst相關內容重新整理一份腳本:
#!/home/weblogic/wlserver_10.3/common/bin/wlst.sh import sys if len(sys.argv)==2: appName=sys.argv[1] print "start connect weblogic" connect('weblogic','weblogic','t3://localhost:7001') print "===========stop "+appName+" ===============" stopApplication(appName) #edit() #print "========undeploy web==========" #undeploy('web') #activate() print "==============reploy "+appName+" ========" redeploy(appName) #print "=========deploy web=============" #deploy('web','/home/weblogic/user_projects/domains/base_domain/servers/pweb/deploy/web','web') #activate() print "==========deploy "+appName+"=========" startApplication(appName) exit() else: print "please input the appName"
以下為逐一說明:
1、由於wlst腳本基於jyphon,但又不能直接使用python進行解析,因此需要首先定義解析器,解析器為weblogic自帶腳本wlst.sh
#!/home/weblogic/wlserver_10.3/common/bin/wlst.sh
2、由於有多個項目,每次啟動無法確定,因此從外部傳輸要啟動的appName,python使用sys.argv獲取外部參數,外部參數第一個固定為腳本名稱,第二個開始為外部參數。因此判斷是否傳入appName
import sys if len(sys.argv)==2: appName=sys.argv[1]
3、wlst操作weblogic需要首先登陸
connect('weblogic','weblogic','t3://localhost:7001')
4、登陸后依次進行如下操作,停止應用,重新發布,啟動應用,
stopApplication(appName)#停止應用 redeploy(appName)#重新發布 startApplication(appName)#啟動應用
5、為了防止內存溢出,也可以采用刪除應用和重新部署
edit()#啟用編輯模式 undeploy('web') #刪除應用發布 deploy('web','/home/weblogic/user_projects/domains/base_domain/servers/deploy/web','web')#發布應用 activate()#激活