2011-11-22 17 views
0

$AdminApp view <applicationName> -MapResRefToEJBを使用すると、デプロイされたEJBモジュール用に定義されたリソース参照をリストすることができます。しかし、そのコマンドの結果はプレーンテキストです(さらにローカライズされる可能性があります)。その情報を抽出するには、このテキストを解析する必要があります。非常に便利ではありません。 $ AdminConfigを使用して同じ情報(つまり、アプリケーションのリソース参照)を構造化された形式で取得する方法はありますか?wsadmin:既存のリソース参照を調べるにはどうすればいいですか?

答えて

4

AppManagement MBeanは、このデータを構造化形式(Vector of AppDeploymentTasks)で提供します。 wsadminスクリプト(jython)を使用してこのデータを取得するには:

import javax.management as mgmt 
appName = sys.argv[0] 
appMgmt = mgmt.ObjectName(AdminControl.completeObjectName("WebSphere:*,type=AppManagement")) 
appInfo = AdminControl.invoke_jmx(appMgmt, "getApplicationInfo", [appName, java.util.Hashtable(), None], ["java.lang.String", "java.util.Hashtable", "java.lang.String"]) 
for task in appInfo : 
    if (task.getName() == "MapResRefToEJB") : 
     resRefs = task.getTaskData() 
     # skip the first row since it contains the headers 
     for i in range(1, len(resRefs)) : 
      resRef = resRefs[i] 
      print 
      print "URI:", resRef[4] 
      print "EJB:", resRef[3] 
      print "Name:", resRef[5] 
      print "Type:", resRef[6] 
      print "JNDI:", resRef[8] 
関連する問題