Skip to main content

Web サービスのコールバックのカスタマイズ

コールバック・メソッドをオーバーライドすることによって、InterSystems IRIS® データ・プラットフォーム Web サービスの動作をカスタマイズできます。

OnRequestMessage()

Web サービスが要求メッセージを受信したときに、セキュリティ・エラーがない場合に呼び出されます。このコールバックは、セキュリティ・エラーが発生した場合には呼び出されません。システムは、セキュリティ処理の実行後、エンベロープのエラーのチェック後、および WS-Addressing ヘッダ内に指定されているアクションの処理後 (ある場合) に、このコールバックを呼び出します。このコールバックは、未加工の SOAP 要求のログを記録するなどのタスクで役立ちます。

このメソッドには、以下のシグニチャがあります。

Method OnRequestMessage(mode As %String, action As %String, request As %Stream.Object)

以下はその説明です。

  • mode は、SOAP 要求のタイプを指定します。これは、"SOAP" または "binary" のいずれかを指定します。

  • action は、SOAPAction ヘッダの値を格納します。

  • request は、ストリームの SOAP 要求メッセージを格納します。

このメソッドは、%CSP.SessionOpens in a new tab のインスタンスであるオブジェクト %request を使用できます。このオブジェクトの内容は以下のとおりです。

  • Content プロパティには、未加工の要求メッセージが格納されます。

  • NextMimeData() インスタンス・メソッドによって、個々の MIME パートの取得が可能になります (MIME SOAP 要求の場合)。

このメソッドは、Web サービス・インスタンスのプロパティも使用できます。以下のプロパティは初期化の際に設定されます。

  • ImportHandler プロパティには、解析済み SOAP メッセージの DOM が格納されます。

  • SecurityIn プロパティには、WS-Security ヘッダ要素が格納されます。詳細は、"Web サービスの保護" を参照してください。

  • SecurityNamespace プロパティには、WS-Security ヘッダ要素のネームスペースが格納されます。

  • SOAP フォルトが生成された場合、SoapFault プロパティが設定されます。

OnRequestMessage() 内でフォルトを返すには、SoapFault プロパティを設定します。ReturnFault() メソッドは呼び出さないでください。

OnPreWebMethod()

Web メソッドが実行される直前に呼び出され、既定では何もしません。このメソッドは引数を取らないので値を返すことができません。このため、Web メソッドと同じ方法で SOAP フォルトを返すことを除き、このメソッドでは Web サービスの実行を変更できません。

このメソッドは、%request%session、および Web サービスのプロパティを使用できます。Web サービスの MsgClass プロパティは、Web メソッドの引数を含むメッセージ記述子クラスです。

OnPostWebMethod()

Web メソッドの実行直後に呼び出され、既定では何もしません。このメソッドは引数を取らないので値を返すことができません。このため、このメソッドは Web メソッドの実行を変更したり、値を返したりできません。主に、OnPreWebMethod() によって作成される必要な構造を削除するために、このメソッドをカスタマイズします。

FeedbackOpens in a new tab