前のトピック: SOAP Webサービス クライアントに関するヒント次のトピック: SOAP Web Services Configuration


Java クライアント

$NX_ROOT/samples/sdk/websvc 内の TableOfContents.doc に、Java サンプル プログラムが複数記載されています。

各サンプル プログラムには、スクリプト ファイル run_java_test_bat.txt (Windows)および run_java_test_sh.txt (UNIX)を使用してコンパイルおよび実行する方法を説明したメモが含まれています。 これらのスクリプトは、org.apache.axis.wsdl.WSDL2Java を使用して CA SDM Web サービスのクライアント側スタブ ファイルを生成する方法を示しています。

Axis 1.4 を使用する場合は、正常にスタブ ファイルを生成するために、-w パラメータが必要です。 記載されたとおりに WSDL2Java を実行すると、サブディレクトリ com/ca/www/UnicenterServicePlus/ServiceDesk 内にスタブ ファイルが生成されます。 以下のファイルが生成されます。

以下のステートメントを使用して、これらのクラスをインポートします。

import com.ca.www.UnicenterServicePlus.ServiceDesk.*;

Web サービス メソッドの多くには、独自のクラス ArrayOfString タイプのパラメータがあります。 たとえば、createRequest() メソッドの attrVals、propertyValues、および属性パラメータは、すべて ArrayOfString パラメータです。

ArrayOfString 変数に値を設定するには、変数をインスタンス化してから、以下のように setString() を使用します。

ArrayOfString attrVals = new ArrayOfString();
attrVals.setString(new String[]{"customer", customerHandle, "description", "description text"});

空に設定する方法

attrVals.setString(new String[0]);

List メソッドからの戻り値として、別の独自クラス ListResult タイプの次のような変数を使用します。doQuery()、getRelatedList()、getNotificationsForContact()、getPendingChangeTaskListForContact()、および getPendingIssueTaskListForContact()。 ListResult には listHandle および listLength エレメントが含まれており、以下の例で示すとおりに getListHandle() and getListLength() を使用して取得できます。

ListResult doQueryResult = new ListResult();
doQueryResult = USPSD.doQuery(sid, "iss", "active = 1");
int listHandle = doQueryResult.getListHandle();
int listLength = doQueryResult.getListLength();

getListValues() メソッドでは、listHandle を使用して、リストのサブセットから値を取得します。

freeListHandles() メソッドの Handles パラメータは、別の独自クラス ArrayOfInt です。 ListResult から取得した listHandle を使用して、 freeListHandles() を呼び出します。

ArrayOfInt handleList = new ArrayOfInt();
handleList.setInteger(new java.lang.Integer []{ new java.lang.Integer(listHandle) });
USPSD.freeListHandles(sid, handleList);

メソッドの中には、javax.xml.rpc.holders.StringHolder タイプの参照パラメータによる引き渡しがあるものもあります。 たとえば、createRequest() には、このタイプのパラメータが NewRequestHandle と NewRequestNumber の 2 つあります。

StringHolder NewRequestNumber = new StringHolder();
StringHolder NewRequestHandle = new StringHolder();
String result;
result = USPSD.createRequest(sid, creatorHandle, attrVals, propertyValues, template, attributes, NewRequestHandle, NewRequestNumber);

これによって、Request のハンドルおよび参照番号(ref_num)は、NewRequestHandle.value および NewRequestNumber.value からそれぞれ取得できます。