加上RSA作部署時,有時候會發生某些設定檔會找不到的狀況,原因不明。
解決辦法如下:
- 重開機
- 重新作一次 maven update dependencies
- 使用EAR透過WAS主控台部署
所以決定研究一下WAS 的指令。
前提:
知道WAS安裝的目錄
例如我的是 "D:\Program piles\IBM\SDP\runtimes\base_v7\profiles\AppSrv01\"
然後要知道自己的was ap的一些資訊
你的AP名字 appName = "tac-ear"
你的cell名字 appCell = "CHT-EE08CCC2D29Node01Cell" 一般來說是 appNode+Cell
你的node名字 appNode = "CHT-EE08CCC2D29Node01" 一般來說是 完整電腦名稱 +Node01
你的server名字 appServer = "server1"
你要部署 ear 檔放置目錄 "C:/Documents and Settings/ropin13/.m2/repository/tac/tac-ear/1.0-SNAPSHOT/tac-ear-1.0-SNAPSHOT.ear"
我們可以進入console模式,對was使用以下指令:
進入was bin目錄,裡面有一些指令可以使用
cd "D:\Program Files\IBM\SDP\runtimes\base_v7\profiles\AppSrv01\bin"
常用指令
- 啟動was(要指定server) startServer.bat server1
- 關閉was(要指定server) stopServer.bat server1
- 使用admin進行部署...等等操作 wsadmin.bat
wsadmin.bat -lang jython -c "xxx"
-lang 是指定要執行的script語言, 上面是指定 jython, 類似Python
-c 是代表後面接的是 script command ,例如常用的有:
安裝ear檔:
wsadmin.bat -lang jython -c "AdminApp.install('C:/Documents and Settings/ropin13/.m2/repository/tac/tac-ear/1.0-SNAPSHOT/tac-ear-1.0-SNAPSHOT.ear', '[-server server1]')"
移除ear檔:
wsadmin.bat -lang jython -c "AdminApp.uninstall('tac-ear')"
-f 代表後面接的是 script file, 例如:wsadmin.bat -lang jython -f "D:/jythonscript/update.py"
搭配was, jython語法可以參考 IBM網站
下面提供在was中幾個jython的指令:
共用區塊
#相關參數
appName = "tac-ear"
appCell = "CHT-EE08CCC2D29Node01Cell"
appNode = "CHT-EE08CCC2D29Node01"
appServer = "server1"
#ear檔目錄
earfile = "C:/Documents and Settings/ropin13/.m2/repository/tac/tac-ear/1.0-SNAPSHOT/tac-ear-1.0-SNAPSHOT.ear"
關閉單個app
print "檢查"+appName+"狀態是否為關閉狀態"
myAppStatus = AdminControl.completeObjectName('type=Application,name='+appName+',*')
if myAppStatus!="":
print "停止"+appName
queryName = 'cell='+appCell+',node='+appNode+',type=ApplicationManager,process='+appServer+',*'
print "queryName"+queryName
appManager = AdminControl.queryNames(queryName)
#透過appManager 停止 tac-ear
AdminControl.invoke(appManager, 'stopApplication', appName)
print "停止"+appName+"完成"
else:
print appName+"為關閉狀態"
啟動單個app
print "檢查"+appName+"狀態是否為開啟狀態"
myAppStatus = AdminControl.completeObjectName('type=Application,name='+appName+',*')
if myAppStatus=="":
print "啟動tac-ear"
#取得appManager
appManager = AdminControl.queryNames('cell='+appCell+',node='+appNode+',type=ApplicationManager,process='+appServer+',*')
#透過appManager啟動 myApplication
AdminControl.invoke(appManager, 'startApplication', appName)
print "啟動"+appName+"完成"
else:
print appName+"為啟動狀態"
更新單個app
print "更新檢查"
myAppStatus = AdminControl.completeObjectName('type=Application,name='+appName+',*')
if myAppStatus=="":
#-----------------
#更新app
print "更新中"
bindJndiForEJBValue = [["Increment Enterprise Java Bean", "Increment", " Increment.jar,META-INF/ejb-jar.xml", "Inc"]]
AdminApp.update(appName, 'app', ['-operation', 'update', '-contents',earfile, '-usedefaultbindings', '-nodeployejb','-BindJndiForEJBNonMessageBinding', bindJndiForEJBValue])
print "更新完成"
#save
AdminConfig.save()
print "儲存完成"
else:
print "未進行更新"
查詢server中所有app(包含執行與非執行中)
print "列出所有app"
print AdminApp.list()
檢查app是否運行中
print "查詢"+appName
coName = "type=Application,name="+appName+",*"
myAppStatus = AdminControl.completeObjectName(coName)
if myAppStatus!="":
print appName+"執行中"
print "'"+myAppStatus+"'"
else:
print appName+"沒有運行"
以上,請盡情享用
沒有留言:
張貼留言