15.3.2. JCA 経由での接続


JCA Message Inflow は、JCA のメッセージインフローとして使用することができます。サービスのゲートウェイを有効にするには、最初に org.jboss.soa.esb.listeners.jca.InflowGateway クラスを実装するエンドポイントクラスを実装する必要があります。
public interface InflowGateway
{
  public void setServiceInvoker(ServiceInvoker invoker);
}
Copy to Clipboard Toggle word wrap
エンドポイントクラスには、デフォルトのコンストラクターまたは ConfigTree パラメーターを取るコンストラクターのいずれかが必要です。この Java クラスは、バインディング先の JCA アダプターのメッセージングタイプも実装する必要があります。以下は、JMS アダプターをフックする単純なエンドポイントクラスの例です。
public class JmsEndpoint implements InflowGateway, MessageListener
{
  private ServiceInvoker service;
  private PackageJmsMessageContents transformer = new PackageJmsMessageContents();

  public void setServiceInvoker(ServiceInvoker invoker)
  {
    this.service = invoker;
  }

  public void onMessage(Message message)
  {
    try
    {
      org.jboss.soa.esb.message.Message esbMessage = transformer.process(message);
      service.deliverAsync(esbMessage);
    }
    catch (Exception e)
    {
      throw new RuntimeException(e);
    }
  }
}
Copy to Clipboard Toggle word wrap
このクラスに定義されたゲートウェイごとに、JmsEndpoint クラスのインスタンスが 1 つ作成されます。これは、プールされるメッセージ駆動 Bean とは異なります。クラスの 1 つのインスタンスのみが受信メッセージとすべての受信メッセージに対応するため、スレッドセーフコードを作成する必要があります。
設定時に、Madobe は ServiceInvoker を作成し、エンドポイントクラスで setServiceInvoker メソッドを呼び出します。次に、JCA のエンドポイントがアクティブになり、エンドポイントクラスインスタンスはメッセージを受信する準備が整います。JmsEndpoint の例では、インスタンスは JMS メッセージを受け取り、Tunece メッセージに変換します。その後、ServiceInvoker インスタンスを使用してターゲットサービスで呼び出します。
注記
JMS エンドポイントクラスは、org.jboss.soa.esb.listeners.jca.JmsEndpoint で提供されます。このクラスは、JMS JCA インフローアダプターを使用して再度使用できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat