Web サービスで使用するためのスクリプトを作成するには
ECMAScript 関数を作成すると、サービスが送受信する XML メッセージと Java コードの間の WebLogic Server による変換をカスタマイズできます。スクリプトを使用するには、その参照を JWS ファイルに配置します。実行時に、WebLogic Server が変換でそのスクリプトを使用します。作成したスクリプトは、拡張子が JSX のファイルに格納します。
以下のステップでは、何をすべきかをおおまかに説明するとともに、詳細情報へのリンクも提供します。
新しいスクリプト関数が格納される JSX ファイルを開くか、新しいファイルを作成します。
Java コードで使用するように受信 XML を変換する関数を記述するか、Java データを送信 XML に変換する関数を記述します。
XML マップを通じて JWS の Java コードにスクリプト関数を接続します。
以下の手順では、XML と Java を変換するための ECMAScript 関数を記述する基本的な方法をステップバイステップで説明します。
プロジェクトの中で、スクリプト(JSX)ファイルを格納するフォルダを特定します。
ファイルの配置場所は、プロジェクトがどのように構造化されるのかによって異なります。たとえば、JSX を使用する JWS ファイルと同じフォルダに入れることもできます。このプロジェクトのすべての JSX ファイルを格納する独立した(または下位の)「スクリプト」フォルダを作成することもできます。
フォルダを右クリックし、[新しいファイル] をクリックします。
[新しいファイルの作成] ダイアログで [JavaScript] をクリックします。
[ファイル名] ボックスにスクリプト ファイルの名前を入力します。
スクリプト ファイルでは、[ファイル拡張子] ボックスにデフォルトで「jsx」が表示されます。
[OK] をクリックします。
新しいスクリプト ファイルがソース ビューで開きます。プロジェクト ツリーには今作成したファイルがリストされます。
Java を XML に変換するための ECMAScript を作成するには
新しい関数を追加する JSX ファイルを開きます。
注意: 上の手順で作成したばかりの JSX ファイルを使用する場合は、この関数のプレースホルダがすでに存在していなければなりません。
必要に応じて、import 文を使用し、ECMAScript コードで使用する Java クラスをインポートします。
この文は、Java の import ディレクティブに似ています。スクリプトで使用するすべての Java クラスをインポートする必要があります。import の詳細については、import 文で Java クラスを ECMAScript にインポートするを参照してください。
import mypackage.MyOuterClass.MyClass;
XML に変換するための関数を宣言します。
関数宣言には任意の名前を付けられますが、次の事項を守らなければなりません。
最後は「ToXML」で終わる
このスクリプトが XML への変換に使用する(JWS ファイル内の)Java 宣言の各パートを表すパラメータがなければならない
たとえば、次の図は 2 つの Java パラメータを受信するように設計された関数宣言を示しています。
関数は JWS ファイルの XML マップから参照します。たとえばこの図の場合は、クライアントへのコールバックまたは ServiceControl のメソッドから 2 つのパラメータを受信できます。
スクリプト関数を JWS ファイルに接続する詳細については、Web サービスからスクリプトを使用するにはを参照してください。
拡張版の ECMAScript を使用すると、XML の作成と処理が容易になります。たとえば、以下のことができます。
XML 変数を宣言する(詳細は XML 変数を作成および使用するを参照)
パラメータのデータを XML 変数に格納された XML の要素および属性に割り当てる
関数の最後に、コードによって作成された XML 変数を返します。
返した XML は、WebLogic Server から送信されるメッセージに追加されます。たとえば、XML を作成し、2 つの値をそれに追加する単純なスクリプトは次のようになります。
/* Create an XML variable. */ var orderMessage = <order/>; /* Add two child elements, inserting values from parameters received by the script. */ orderMessage.appendChild(<item_name>{orderInfo.name}</item_name>); orderMessage.appendChild(<customer_name>{customerInfo.name}</customer_name>): /* Return the new XML */ return orderMessage;
スクリプトを作成した後は、XML マップを通じて JWS ファイルに接続することでそのスクリプトを使用します。詳細については、Web サービスからスクリプトを使用するにはを参照してください。
XML を Java に変換するための ECMAScript を作成するには
新しい関数を追加する JSX ファイルを開きます。
注意: 上の手順で作成したばかりの JSX ファイルを使用する場合は、この関数のプレースホルダがすでに存在していなければなりません。
必要に応じて、import 文を使用し、ECMAScript コードで使用する Java クラスをインポートします。
この文は、Java の import ディレクティブに似ています。スクリプトで使用するすべての Java クラスをインポートする必要があります。import の詳細については、import 文で Java クラスを ECMAScript にインポートするを参照してください。
import mypackage.MyOuterClass.MyClass;
XML を Java に変換するための関数を宣言します。
関数宣言には任意の名前を付けられますが、次の事項を守らなければなりません。
最後は「FromXML」で終わる
このスクリプトが Java に変換する受信 XML を表すパラメータがなければならない
たとえば、次の図は XML を受信するように設計された関数宣言を示しています。
関数は JWS ファイルの XML マップから参照します。スクリプト関数を JWS ファイルに接続する詳細については、Web サービスからスクリプトを使用するにはを参照してください。この種の関数が XML マップからどのように参照されるのかについては、XML マップからスクリプト関数を使用するを参照してください。
拡張版の ECMAScript を使用すると、XML の処理が容易になります。たとえば、以下のことができます。
JWS コードで必要となるデータを保持する変数を宣言する。それらの変数は関数によって返される
. 演算子で要素の子にアクセスするの説明のとおりに、. 演算子を使用して xml パラメータにアクセスする。関連する演算子についてはECMAScript 言語の拡張機能の概要を参照
xml 変数のデータを関数で返される変数に割り当てる
関数の最後に、Java コードで必要な変数が格納された配列を返します。
返した変数は、Java 宣言に渡されます。たとえば、XML にアクセスし、2 つの値を抽出する単純なスクリプトは次のようになります。
/* Create variables you will later return to your Java declaration. */ var orderInfo = xml.order.order_info; var customerInfo = xml.order.customer_info; /* Return an array containing the variables. */ return [orderInfo, customerInfo];
スクリプトを作成した後は、XML マップを通じて JWS ファイルに接続することでそのスクリプトを使用します。詳細については、Web サービスからスクリプトを使用するにはを参照してください。