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 メンバーを使用して、結果にアクセスできます。 サービス記述を変換する場合には、以下の項目を考慮してください。
parser.parse("./serviceDescription.wsdl")
// Assume that the variable wsdlStr holds the WSDL description as a string var args = new Object(); args.wsdlStr = wsdlStr parser.parse(args);
サービスによって記述されるメソッドを呼び出すには、 メソッド名と、メソッドで予想されるパラメーターの構造が判明していなければなりません。 例えば、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; });
<app name>/ajaxProxy/www.abundanttech.com/WebServices/bnprice/bnprice.asmx.
サービス記述ファイルのサービス・エンドポイント URL を変更した後は、 要求を外部サーバーに転送するために、プロキシーの追加の構成を実行することも必要になります。 詳しくは、ご使用のプロキシーに提供されているドキュメンテーションを参照してください。