如何获得Jython中已安装WebSphere应用程序的信息?

时间:2018-09-25 09:47:20

标签: websphere jython ear wsadmin

当我在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命令?有没有办法告知已安装该应用程序?

1 个答案:

答案 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上)。