Sun WBEM SDK 開発ガイド

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

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


例 4–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[0]) と
 * リストするクラスの名前 (args[1]) を受け取る。
 */
public class WBEMsample {
    public static void main(String args[]) throws CIMException {
        CIMClient cc = null;
            try {
                /* args[0] にはネームスペースが入っている。
                ここでは、指定されたホスト上のデフォルトの
	              root\cimv2 ネームスペースを指す
	              CIM ネームスペース (cns) を作成する。 */
						   CIMNameSpace cns = new CIMNameSpace(args[0]);
						   /* CIM Object manager に接続し、ネームスペースを含む 
							 ネームスペースオブジェクトを渡す。 */
						   cc = new CIMClient(cns, "root", "root_password");
						   /* クラス名から CIMObjectPath を作成する。 */
						   CIMObjectPath cop = new CIMObjectPath(args[1]);
						   /* クラスを取得する (修飾子、クラス起点、
	              プロパティなど)。*/
	              cc.getClass(cop, true, true, true, null);
                // このクラスに属するすべてのインスタンス名を返す。
                Enumeration e = cc.enumerateInstanceNames(cop);
                while(e.hasMoreElements()) {
                    CIMObjectPath op = (CIMObjectPath)e.nextElement();
                    System.out.println(op);
                  } // while の終り
	  	        } catch (Exception e) {
                System.out.println("Exception: "+e);
            }
            if(cc != null) {
               cc.close();
            } 
     } // main の終り
 } // WBEMsample の終り