15.2.2. ゲートウェイリスナーと通常のリスナーの相違点
ゲートウェイは、デスクトップ対応リスナーと同様に動作します。ただし、重要な相違点がいくつかあります。
- ゲートウェイクラスは、ファイル、JMS メッセージ、SQL テーブルなどに含まれる任意のオブジェクトを取得できます(各ゲートウェイクラスは特定のトランスポートに特化されています)、JBossESB リスナーは、このドキュメントのメッセージ セクションで説明されているように JBossESB の正規化されたメッセージのみを処理できます。ただし、これらのメッセージには任意のデータを含めることができます。
- message 設定アクションを実行するアクションクラスが 1 つだけ呼び出されます。allInOne リスナーは、アクション処理パイプラインを実行できます。
- 'picked up'(ピックアップされたオブジェクトは、Maker メッセージオブジェクトを返す単一の 'composer class')を呼び出すために使用されます。最終的には、このサービスに対応する必要があるターゲットサービスに配信されます。設定時に定義されるターゲットサービスは、実行時にレジストリーによって EPR (または EPR の一覧)に変換されます。レジストリーによって返される EPR は、Madobe Messages のヘッダーに含まれる 'toEPR' と似ています。ただし、着信オブジェクトは toEPR を決定する動的な方法を持たない 'ESB-unaware' であるため、この値は設定時にゲートウェイに提供され、すべての送信メッセージに含まれます。同梱のコンポーザークラスがいくつかあります。デフォルトのファイルコンポーザクラスは、ファイルの内容をメッセージボディーにパッケージ化するだけです。JMS メッセージでも同じプロセスが発生します。SQL テーブル行にクラスを作成するデフォルトのメッセージは、設定で指定されたすべての列のコンテンツを java.util.Map にパッケージ化することです。これらのデフォルトの composer クラスはほとんどの用途に適していますが、独自のクラスを指定することもできます。唯一の要件は、単一の ConfigTree 引数を取るコンストラクターが必要で、Message コンポジションメソッドを提供する必要があります(デフォルト名は process ですが、コンストラクター時に提供された ConfigTree 内の <action> 要素の process 属性で異なる設定を行うことができます)。処理メソッドは、型オブジェクトの単一の引数を取り、メッセージ値を返す必要があります。FileGateway は
file-filter-class設定属性を受け入れます。これにより、問題のゲートウェイが使用するファイルを選択するのに使用できる FileFilter 実装を定義できます。ユーザー定義の FileFilter インスタンスの初期化はゲートウェイによって実行されます。インスタンスがorg.jboss.soa.esb.listeners.gateway.FileGatewayListener.FileFilterInitタイプでもあると、initメソッドが呼び出され、ゲートウェイ ConfigTree インスタンスに渡されます。デフォルトでは、FileFilter 実装は FileGateway によって定義され、使用されます。入力接尾辞が設定ファイルに定義されている場合、その接尾辞に一致するファイルが返されます。または、入力接尾辞がない場合は、作業接尾辞、エラー接尾辞、および post 接尾辞に一致しない限り、すべてのファイルが許可されます。