例 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 } |