IBM® SOAP ライブラリーの使用例

SOAP サービスは、ローカル・ファイルまたはリモート・ファイルのいずれからでも、 サービス記述を使用してインスタンス化できます。 サービス記述は、.smd でも、.wsdl ファイル・フォーマットでもかまいません。 次の使用例を参照してください。

	
<div dojoType="ibm_soap.widget.SoapService" id="bnpriceService"
	url="./bnpriceGenerated.smd">

<div dojoType="ibm_soap.widget.SoapService" id="amazonCommerceService"
	url="./AWSECommerceService.wsdl">

サービス記述のロケーションは、URL で指定する必要があります。 ウィジェットが構文解析されてインスタンス化されると、 サービスを使用できるようになります。 一般に、サービス記述が .wsdl ファイルで提供されているサービスから開始する必要があります。 提供された WsdlParser を使用すると、.smd フォーマットに変換できます。 次の使用例を参照してください。

var parser=new ibm_soap.util.WsdlParser();
parser.parse("./serviceDescription.wsdl"); var smdString = parser.smdString;

WSDL フォーマットの記述を構文解析する場合は、 パーサーの smdString または smdObject メンバーを使用して、結果にアクセスできます。 サービス記述を変換する場合には、以下の項目を考慮してください。

サービスによって記述されるメソッドを呼び出すには、 メソッド名と、メソッドで予想されるパラメーターの構造が判明していなければなりません。 例えば、Amazon サービスの場合は ItemLookUp メソッドの呼び出し方法の例を参照してください。 まず、次のようにしてパラメーター・リストを作成します。

		// Assume accessKeyId holds the AccessKeyId required by Amazon.
var amazonServiceParms = new dojox.wire.ml.XmlElement("ItemLookUpRequest");
		amazonServiceParms.setPropertyValue("AWSAccessKeyId",accessKeyId);
		amazonServiceParms.setPropertyValue("ItemId",isbn);

setPropertyValue メソッドを呼び出して、必要なプロパティーを設定します。 変数 isbn は、検索対象の ISBN を保管します。 次に、ウィジェットの service メンバーを使用して、サービス・メソッドを呼び出します。 以下に例を示します。

	var deferred = amazonCommerceService.service.ItemLookup(amazonServiceParms)

この呼び出しは、タイプ dojo.Deferred のオブジェクトを戻します。 この中には、戻されたコンテンツの BODY ノードが含まれています。 単純な Document Object Model (DOM) 操作を使用して、結果にアクセスします。 次に示す、戻されたデータから結果にアクセスする例を参照してください。

deferred.addCallback(function(results){
			var title = results.getElementsByTagName("Title")[0].firstChild.nodeValue;
			var author = results.getElementsByTagName("Author")[0].firstChild.nodeValue;
			var publisher = results.getElementsByTagName("Manufacturer")[0].firstChild.nodeValue;
			var resultNode = dojo.byId("details");
			resultNode.innerHTML = "<br><b>Title:</b>"  + title
					+ "<br><b>Author:</b>" + author
					+ "<br><b>Publisher:</b>" + publisher;
		});

プロキシーの要件

クロスドメイン XMLHttpRequest (XHR) の制約により、 サービス記述に定義されたサービス・エンドポイントに到達する場合に、 プロキシーを使用しなければならないことがあります。 プロキシーを取り込むために、サービス・エンドポイントを変更する必要があります。 Barnes and Noble 価格サービスの変更済みバージョンは、次の例のようになります。


<app name>/ajaxProxy/www.abundanttech.com/WebServices/bnprice/bnprice.asmx.

サービス記述ファイルのサービス・エンドポイント URL を変更した後は、 要求を外部サーバーに転送するために、プロキシーの追加の構成を実行することも必要になります。 詳しくは、ご使用のプロキシーに提供されているドキュメンテーションを参照してください。



ご利用条件 | フィードバック