当我在WebSphere中部署.ear
应用程序时,在安装共享库时遇到了问题。我使用一种解决方法来解决这样的问题
[... code to install the application]
&& sleep 60
&& /opt/IBM/WebSphere/AppServer/bin/wsadmin.sh -lang jython -c \
"AdminApp.edit('appname', ['-MapSharedLibForMod', [['.*','.*', 'ibm']]])"
因为我需要确保在调用.ear
之前已安装AdminApp.edit
文件
如何摆脱sleep
命令?有没有办法告知已安装该应用程序?
答案 0 :(得分:0)
在我的部署脚本(bash)中,我呼叫:
#!/bin/bash
$DM_WAS_HOME/wsadmin.sh -f $SCRIPTS_HOME/application_deploy.jacl $WORKING_DIRECTORY/appServer/$EAR_NAME $dmserver
if [ $? -eq 0 ]
then
$DM_WAS_HOME/wsadmin.sh -lang jython -f $SCRIPTS_HOME/link_shared_lib.jython
if [ $? -ne 0 ]
then
echo "ERROR: could not link libraries."
exit 2
fi
else
echo "ERROR: installation failed, fix it"
exit 1
fi
wsadmin.sh安装中出现任何问题,并且退出状态不为0。这样,如果由于某种原因安装花费更多时间,就不会有问题,因为只有完成第一个任务后,您才能移动上。
应用程序安装jacl设置了一堆变量并调用:
$AdminApp update $appname app $updateopts
$adminConfig save
foreach nodeName $SyncNode {
puts "Syncing $nodeName"
$AdminControl invoke $nodeName sync
}
所以那里什么都不能正常工作,退出状态是!=0。
是的,我知道我必须将jacl重写为jython(此应用程序仍在WAS 7上)。