前のトピック: エラーの処理次のトピック: 属性の取得


接続の作成および管理

Web サービス接続を確立して DSM Web サービスにログインするには、Web サービス ロケータおよび SOAP を使用した Web サービスへのバインドの両方を初期化する必要があります。 Web サービスの URL を確認する必要があります。 標準の DSM インストールでは、多くの場合、Windows では http://<マシン名>/udsm_r11_webservice/mod_gsoap.dll、Linux では http://<マシン名>/UDSM_R11_WebService の形式になります。

R12.5 以降のリリースについては、以前の URL に加えて、以下の Web サービス エンドポイントを使用します。

Windows

http://<マシン名>/DSM_Webservice/mod_gsoap.dll

Linux

http://<マシン名>/DSM_WebService

Web サービス ロケータを初期化して(a)、Web サービスの URL を使用して Web サービス API への接続を確立する(b)必要があります。

例 1: 必要な接続変数の設定

//これは、すべての Web サービスの呼び出しで使用されるセッション ID です
//Web サービスへのログイン時に設定されます
private String sessionId = "";	
//これらは、Web サービスを呼び出す必要がある
//UDSM Web サービス オブジェクトです
//(a)
private DSMWebServiceAPIService wsAPIservice = null;
//(b)
public DSMWebServiceAPISoapBindingStub wsAPIconnector = null;
private String serviceLocation="";
private java.net.URL endpoint = new java.net.URL(serviceLocation);

注: この例は、Apache Axis バージョン 1.2 および JDK 1.5 を使用して生成されたものであり、Web サービス クライアント コードの記述に関するベスト プラクティスを保証するものではありません。

例 2: Web サービス接続の確立

//サービス ロケータ オブジェクトを作成します -- これは必須です。
wsAPIservice = new WebServiceAPIServiceLocator();
//サービス ロケータ オブジェクトが作成された場合、続行します
if (wsAPIservice != null)
{
	try
	{
		//Web サービスの URI を使用して、 
		//Web サービスにバインドするバインド オブジェクトの作成を試みます
	     	wsAPIconnector= (WebServiceAPISoapBindingStub)
		wsAPIservice.getWebServiceAPIService(endpoint);
	}
	catch(Exception e)
	{
	     	throw e;
	}
}
else
{
	sessionId = "";
	return WEB_SERVICE_COULD_NOT_BE_INITIALISED;
}

Java Web サービス メソッドでは、検出および処理する必要がある Web サービスの例外がスローされます。

接続が確立された後、DSM エクスプローラへのログインと同様に、DSM Web サービスにログインすることが重要です。 Login メソッドでは、有効な DSM ユーザのクレデンシャルを使用して呼び出す必要があります。

例 3: DSM Web サービスへのログイン

//config オブジェクトのクレデンシャルを使用して(ここでは説明しません)、
//新しい Web サービス接続へのログインを試みます
	try
	{
sessionId = wsAPIconnector.Login(    cfg.getUserName(),cfg.getPassword(),cfg.getManager() );
	}
	catch (Exception e)
	{
	     sessionId = "";
	     throw e;
	}
     	
	//セッション ID が空白の場合は、セッションを確立できません
	if(sessionId.equals(""))
	{
		return SESSION_COULD_NOT_BE_ESTABLISHED;
	}
	else
	{
		return RESULT_OK;
	}