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