Sun WBEM 開発ガイド

例 - 一般的な Sun WBEM SDK アプリケーション

例 6-1 に、すべてのデフォルト値を使用して CIM Object Manager に接続する簡単なアプリケーションを示します。このプログラムは、クラスを取得し、そのクラス内のインスタンスの列挙と出力を行います。


例 6-1 一般的な Sun WBEM SDK アプリケーション

import java.rmi.*;
import com.sun.wbem.client.CIMClient;
import com.sun.wbem.cim.CIMInstance;
import com.sun.wbem.cim.CIMValue;
import com.sun.wbem.cim.CIMProperty;
import com.sun.wbem.cim.CIMNameSpace;
import com.sun.wbem.cim.CIMObjectPath;
import com.sun.wbem.cim.CIMClass;
import com.sun.wbem.cim.CIMException;
import java.util.Enumeration;
 
/**
* コマンド行に指定されたクラスを取得する (args[1])。コマンド行に
* 指定されたネームスペース内のクラスインスタンスを取得する (args[0])。
*/
1	public class WBEMsample {
2    public static void main(String args[]) throws CIMException {
3        CIMClient cc = null;
4        try {
5           /* args[0] にはネームスペースが入る。このネームスペースを
6						  格納するためにネームスペースオブジェクト (cns) を作成する。 */
7						  CIMNameSpace cns = new CIMNameSpace(args[0]);
8						  /* CIM Object manager に接続し、ネームスペースを含む 
9						ネームスペースオブジェクトを渡す。 */
10						cc = new CIMClient(cns);
11						/* args[1] にはクラス名が入る。現在のネーム
12						スペース内の指定されたクラスを参照する CIM Object
13						Path を作成する。 */
14						CIMObjectPath cop = new CIMObjectPath(args[1]);
15						/* CIM Object Path によって参照されている
16						クラスオブジェクトを取得する。 */
17						cc.getClass(cop);
18						//クラスとそのすべてのサブクラスのディープ (deep) 列挙
19						Enumeration e = cc.enumInstances(cop, true);
20						while(e.hasMoreElements()) {
21								CIMObjectPath op = (CIMObjectPath)e.nextElement();
22								System.out.println(op);
23						}
24        catch (Exception e) {
25            			System.out.println("Exception: "+e);
26       }
27        if(cc != null) {
28           		 cc.close();
29       }
30    }
31 }