SOAP ヘッダーにアクセスするための EGL サポート

SOAP ヘッダーにアクセスするための機能がいくつか用意されています。 HTTP ヘッダーにアクセスするための詳細については、このトピックの末尾にある最初の 4 つの参照トピックを参照してください。

SOAP ヘッダーにアクセスできるのは、EGL 生成の Java ベースの SOAP サービス、または EGL 生成の Java ベースまたは JavaScript ベースの SOAP サービス・リクエスターに限られます。

イベントの流れを確認するために、SOAP ヘッダーを以下のようなレコード・パーツで記述した例を取り上げましょう。
Record SOAPHeader
   field1 string{@xmlelement{namespace = "http://services";}};
   field2 string{@xmlelement{namespace = "http://services";}};
end

このレコード・パーツは、非構造化レコードでなければならず、各フィールドで名前空間を指定しなければなりません。

以下にサービス・コードを示します。
service SayHello
   function hello()
      getSOAPRequestHeaders(header);
      //...
      header SOAPHeader{field1="valueA", field2="valueB"};
      ServiceLib.setSOAPResponseHeaders(header);
   end
end

関数 hello によって、SOAP 要求ヘッダーを前述のタイプのレコードに取り込み、そのレコードに値を割り当て、それらの要求した値で SOAP 応答ヘッダーを設定します。

以下にリクエスター・コードを示します。
srvc SayHello{@BindService {}};
header SOAPHeader{field1="value1", field2="value2"};
ServiceLib.setSOAPRequestHeaders(srvc, header);
response string = srvc.hello("ABC");
ServiceLib.getSOAPResponseHeaders(srvc, header);

リクエスターでは、サービス・アクセス変数を宣言し、前述のタイプのレコードに値を割り当て、それらの値で SOAP 要求ヘッダーを設定し、サービスを呼び出し、応答ヘッダーを前述のタイプのレコードに取り込みます。

注: EGL 生成の SOAP サービスまたは SOAP サービス・リクエスターは、JAX-RPC ではなく JAX-WS に依拠している必要があります。


フィードバック