例 4–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[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 の終り