メディエータのJavaコールアウトAPI

JavaコールアウトAPIでは、oracle.tip.mediator.common.api.IjavaCalloutおよびoracle.tip.mediator.common.api.CalloutMediatorMessageという2つのインタフェースを定義します。

表20-5では、oracle.tip.mediator.common.api.IjavaCalloutインタフェースのメソッドをリストして説明します。

表20-5 IjavaCalloutインタフェースのメソッドの説明

メソッド 説明

initialize

コールアウト実装クラスが初めてインスタンス化されるときに起動されます。

preRouting

メディエータがケースの実行を開始する前にコールされます。このメソッドをカスタマイズすると、検証および拡張機能を組み込むことができます。

preRoutingRule

メディエータが特定のケースの実行を開始する前にコールされます。このメソッドをカスタマイズすると、ケース固有の検証および拡張機能を組み込むことができます。

preCallbackRouting

メディエータがコールバック処理の実行を終了する前にコールされます。このメソッドをカスタマイズすると、コールバックの監査およびカスタムのフォルト・トラッキングを実行できます。

postRouting

メディエータがケースの実行を終了した後にコールされます。このメソッドをカスタマイズすると、レスポンスの監査およびカスタムのフォルト・トラッキングを実行できます。

後処理メソッドは、すべての順次ルーティングが実行された後にコールされますが、パラレルのルーティング・ルールの完了は待機しません。

postRoutingRule

メディエータがケースの実行を開始した後にコールされます。このメソッドをカスタマイズすると、レスポンスの監査およびカスタムのフォルト・トラッキングを実行できます。

postCallbackRouting

メディエータがコールバック処理の実行を終了した後にコールされます。このメソッドをカスタマイズすると、コールバックの監査およびカスタムのフォルト・トラッキングを実行できます。

ノート:

preRoutingRuleメソッドまたはpreRoutingメソッドで、Javaコールアウトを使用してメディエータのメッセージ・プロパティを変更した場合は、メディエータの割当て機能を使用して、変更したプロパティをアウトバウンド・メッセージに明示的にコピーする必要があります。たとえば、Javaコールアウトでjca.file.FileNameを変更している場合は、メディエータの割当て文を次のように更新する必要があります。

<assign>
<copy target="$out.property.jca.file.FileName"
expression="$in.property.jca.file.FileName"/>
</assign>

表20-6で、CalloutMediatorMessageインタフェースのメソッドについて説明します。

表20-6 CalloutMediatorMessageインタフェースのメソッドの説明

メソッド 説明

addPayload

メディエータ・メッセージのペイロードを設定します。

addProperty

メディエータ・メッセージにプロパティを追加します。

addHeader

メディエータ・メッセージにヘッダーを追加します。

getProperty

プロパティ名を指定してメディエータ・メッセージのプロパティを取得します。

getProperties

メディエータ・メッセージのプロパティを取得します。

getId

メディエータ・メッセージのインスタンスIDを取得します。このインスタンスIDは、該当する特定のメッセージに対して作成されたメディエータ・インスタンスIDです。

getPayload

メディエータ・メッセージのペイロードを取得します。

getHeaders

メディエータ・メッセージのヘッダーを取得します。

getComponentDN

メディエータ・サービス・コンポーネントのcomponentDNを取得します。

ノート:

  • oracle.tip.mediator.common.api.AbstractJavaCalloutImplクラスは、IJavaCalloutインタフェースのダミー実装です。このクラスによって、IJavaCalloutインタフェースに存在するすべてのメソッドが定義されます。このため、このクラスの拡張によって、IJavaCalloutインタフェースのいくつかの特定メソッドのみをオーバーライドできます。

    インタフェースのダミー実装は、実装クラスによって、特定のインタフェースで宣言されているすべてのメソッドの定義が提供されることを意味しますが、空のメソッド本体を1つ以上の定義済メソッドに指定することはできます。ダミー実装クラスの拡張は、インタフェースを実装してすべてのメソッドを定義する場合と異なり、メソッドのサブセットのみをオーバーライドできるためより簡単です。

  • Javaコールアウト内で発生する処理の詳細は、メディエータの「監査証跡」画面には表示されません。