8

インストールされているアプリケーションのリストを取得できますが、Jython を使用してステータスを取得するにはどうすればよいですか?

4

4 に答える 4

14

アプリケーションの実行ステータスを取得する直接的な方法はないと思います。次のコードを使用して、AdminControl からオブジェクトを取得できます。

serverstatus = AdminControl.completeObjectName('type=Application,name='your_application_name',*')
print serverstatus

null を返す場合serverstatus、アプリケーションは実行されていません。アプリケーションが実行されている場合は、アプリケーションの詳細が出力されます。

于 2011-11-19T12:42:45.857 に答える
6

スネハンの答えに基づいて私が使用するものは次のとおりです。

import string

def getAppStatus(appName):
    # If objectName is blank, then the application is not running.
    objectName = AdminControl.completeObjectName('type=Application,name=' + appName + ',*')
    if objectName == "":
        appStatus = 'Stopped'
    else:
        appStatus = 'Running'
    return appStatus

def appStatusInfo():
    appsString = AdminApp.list()
    appList = string.split(appsString, '\r\n')

    print '============================'
    print ' Status |    Application   '
    print '============================'

    # Print apps and their status
    for x in appList:
        print getAppStatus(x) + ' | ' + x

    print '============================'



appStatusInfo()

サンプル出力

============================
 Status |    Application
============================
Running | DefaultApplication
Running | IBMUTC
Stopped | some-ear
Running | another-ear
============================
于 2014-01-08T13:41:31.183 に答える
4

次の IBM ドキュメントが役立ちます。

要約すると、アプリケーションがアプリケーション サーバーで実行されている場合、ApplicationMBeanが登録されます。アプリケーションが実行されているかどうかを判断するために、これらの MBean の存在を照会できます。

于 2011-11-18T18:39:45.650 に答える
1

コーミエの脚本であるマシューには、さらに修正が必要です。

どうぞ。

任意の行区切りで機能します。通常、 AdminApp.list()は行区切りとして「\」を使用します。

import string

def getAppStatus(appName):
    # If objectName is blank, then the application is not running.
    objectName = AdminControl.completeObjectName('type=Application,name='+ appName+',*')
    if objectName == "":
        appStatus = 'Stopped'
    else:
        appStatus = 'Running'
    return appStatus

def appStatusInfo():
    Apps=AdminApp.list().split(java.lang.System.getProperty("line.separator"))

    print '============================'
    print ' Status |    Application   '
    print '============================'

    # Print apps and their status
    for x in Apps:
        print "X value", x
        print getAppStatus(x) + ' | ' + x

    print '============================'



appStatusInfo()
于 2015-11-26T13:37:44.383 に答える