クラス CamelMessageHandler

実装されたすべてのインターフェース:
org.reactivestreams.Subscriber<Message<?>>AwareBeanClassLoaderAwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareOrderedExpressionCapableOrderableMessageProducerHeaderPropagationAwareIntegrationPatternNamedComponentIntegrationManagementTrackableComponentMessageHandlerreactor.core.CoreSubscriber<Message<?>>

public class CamelMessageHandler extends AbstractReplyProducingMessageHandler
Apache Camel を呼び出してルートし、(オプションで) 応答を生成するための MessageHandler

非同期モードでは、ProducerTemplate.asyncSend(Endpoint, Exchange) が使用されます。

リクエストと応答の動作は、ExchangePattern 構成またはメッセージごとに制御できます。デフォルトでは、このハンドラーは ExchangePattern.InOnly モードで動作します。

Spring Integration と Apache Camel メッセージ間のデフォルトの「すべてのヘッダーのマッピング」動作は、setHeaderMapper(HeaderMapper) オプションを使用してカスタマイズできます。

呼び出すターゲット Apache Camel エンドポイントは、endpointUriExpression によって決定できます。デフォルトでは、ProducerTemplate.getDefaultEndpoint() が使用されます。

導入:
6.0
作成者:
Artem Bilan
関連事項:
  • コンストラクターの詳細

    • CamelMessageHandler

      public CamelMessageHandler()
    • CamelMessageHandler

      public CamelMessageHandler(org.apache.camel.ProducerTemplate producerTemplate)
  • メソッドの詳細

    • setEndpointUri

      public void setEndpointUri(StringSE endpointUri)
      Camel ルートのエンドポイント uri を設定して、メッセージを送信します。setEndpointUriExpression(Expression) および setRoute(LambdaRouteBuilder) とは相互に排他的です。
      パラメーター:
      endpointUri - メッセージを送信する Camel ルートエンドポイント。
    • setEndpointUriExpression

      public void setEndpointUriExpression(Expression endpointUriExpression)
      Camel ルートのエンドポイント uri を設定して、メッセージを送信します。setEndpointUri(String) および setRoute(LambdaRouteBuilder) とは相互に排他的です。
      パラメーター:
      endpointUriExpression - メッセージを送信する Camel ルートエンドポイントを決定する SpEL 式。
    • setRoute

      public void setRoute(org.apache.camel.builder.LambdaRouteBuilder route)
      LambdaRouteBuilder を設定して、インライン Camel ルート定義を追加します。ラムダ rb -> rb.from("direct:inbound").bean(MyBean.class) または外部インスタンスへの参照として使用できます。setEndpointUri(String) および setEndpointUriExpression(Expression) とは相互に排他的です。メッセージを送信するエンドポイントは、ターゲット RouteBuilder から抽出されます。
      パラメーター:
      route - 使用する LambdaRouteBuilder
    • setExchangePattern

      public void setExchangePattern(org.apache.camel.ExchangePattern exchangePattern)
    • setExchangePatternExpression

      public void setExchangePatternExpression(Expression exchangePatternExpression)
    • setHeaderMapper

      public void setHeaderMapper(HeaderMapper<org.apache.camel.Message> headerMapper)
      リクエストと応答の交換パターンが使用されている場合は、リクエストメッセージヘッダーを Apache Camel メッセージヘッダーにマッピングし、元に戻すように HeaderMapper を設定します。
      パラメーター:
      headerMapper - 使用する HeaderMapper
    • setExchangeProperties

      public void setExchangeProperties(MapSE<StringSE,ObjectSE> exchangeProperties)
    • setExchangePropertiesExpression

      public void setExchangePropertiesExpression(Expression exchangePropertiesExpression)
      Exchange プロパティを MapSE として評価する SpEL 式を設定します。
      パラメーター:
      exchangePropertiesExpression - 交換プロパティの式。
    • doInit

      protected final void doInit()
      オーバーライド:
      クラス AbstractReplyProducingMessageHandlerdoInit 
    • handleRequestMessage

      protected ObjectSE handleRequestMessage(Message<?> requestMessage)
      クラスからコピーされた説明: AbstractReplyProducingMessageHandler
      サブクラスはこのメソッドを実装して、リクエストメッセージを処理する必要があります。戻り値は、メッセージ、MessageBuilder、任意のプレーンオブジェクトです。基本クラスは、これらの開始点のいずれかからの返信メッセージの最終的な作成を処理します。戻り値が null の場合、メッセージフローはここで終了します。
      次で指定:
      クラス AbstractReplyProducingMessageHandlerhandleRequestMessage 
      パラメーター:
      requestMessage - リクエストメッセージ。
      戻り値:
      メッセージを処理した結果、または null