我如何知道 WebSphere 应用程序已安装在 Jython 中?

How do I get that a WebSphere application has been installed in Jython?

当我在 WebSphere 中部署 .ear 应用程序时,我在安装共享库时遇到问题。我使用变通方法来解决我的问题

  [... code to install the application]
  && sleep 60 
  && /opt/IBM/WebSphere/AppServer/bin/wsadmin.sh -lang jython -c \
    "AdminApp.edit('appname', ['-MapSharedLibForMod', [['.*','.*', 'ibm']]])"

因为在调用AdminApp.edit

之前我需要确保.ear文件已经安装

如何摆脱 sleep 命令?有没有办法获得应用已安装的信号?

在我的部署脚本 (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 上)。