Spring統合RecipientListRouterは複数のペイロードを作成しません

Achraf Elomari:

誰でもこの問題で私を助けることができます、私はドキュメントが示唆するように私のReceipientListRouterを設定しました:

@Bean
    public IntegrationFlow routerFlow() {
        return IntegrationFlows.from(CHANNEL_INPUT)
                .routeToRecipients(r -> r
                        .applySequence(true)
                        .ignoreSendFailures(true)
                        .recipient(CHANNEL_OUTPUT_1)
                        .recipient(CHANNEL_OUTPUT_2)
                        .sendTimeout(1_234L))
                .get();
    } 

@ServiceActivator(inputChannel = CHANNEL_OUTPUT_1, outputChannel = CHANNEL_END)
    public Object foo(Message<?> message) {
       message.gePayload();
      //  processing1() ...
    }

@ServiceActivator(inputChannel = CHANNEL_OUTPUT_2, outputChannel = CHANNEL_END)
    public Object bar(Message<?> message) {
       message.gePayload();
      //  processing2() ...
    }

私はこのワークフローを期待しています:

CHANNEL_INPUT(payload-1) |----> CHANNEL_OUTPUT_1(payload-2) 
                         |----> CHANNEL_OUTPUT_2(payload-3)

ここで、fooアクティベーターの入力のペイロード2 はペイロード1に等しくバーアクティベーターの入力のペイロード3 はペイロード1に等しい

しかし、実際のワークフローは次のとおりです。

fooアクティベーターの入力のペイロード2 はペイロード1に等しいが、バーアクティベーターの入力のペイロード3 fooアクティベーターの出力のペイロード2メッセージに等しい


it seems like this is the actual workflow
CHANNEL_INPUT(payload-1)----> CHANNEL_OUTPUT_1(payload-2)----> CHANNEL_OUTPUT_2(payload-3)

デバッグ後、message.getHeader()は同じではないことに気付き(実際には「sequenceNumber」と「sequenceSize」が含まれています)、message.getPayloadは上記のとおりです

ゲイリーラッセル:

メッセージは不変ですが、ペイロードは変更できません(文字列などの不変オブジェクトでない限り)。

service1でペイロードを変更すると、service2で変更が確認されます。

service2に変更を表示させたくない場合は、変更する前にペイロードを複製またはコピーする必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AndroidWebViewは複数のページをロードしません

分類Dev

Spring統合:http:inbound-channeladapter-ペイロードでjsonオブジェクトを取得していません

分類Dev

Spring統合で「Message」オブジェクトに複数のペイロードを埋め込むための最良の方法は何ですか?

分類Dev

Spring統合を使用してドキュメントからXMLノードの数を取得できません

分類Dev

複数の更新がない限り、GoogleChromeはWebページを正しくロードしません

分類Dev

Springブート統合テストの実行時にApplicationContextをロードできませんでした

分類Dev

Spring Integration 5.2.2.RELEASE-@IntegrationConverterとの統合フロー変換は、Jacksonデータバインドでは機能しません

分類Dev

TFS2012ビルドと統合されたSonarQubeを介して複数のVSソリューションを分析することはできません

分類Dev

iOSでのPaypal統合は、初めてログインウィンドウを表示しませんか?

分類Dev

LambdaMessageProcessorはConversionServiceのペイロードタイプを認識しません

分類Dev

デバッグレベルでSpring統合ログからペイロードを削除します

分類Dev

Allauthは目的のトークンペイロードを返しません

分類Dev

Formdataは複数の画像をアップロードしません

分類Dev

a = bの場合、Rubyはbの重複変数aを作成しませんか?

分類Dev

DBログインを使用したSpring BootとのSAML統合(複数のWebSecurityConfigurerAdapter)

分類Dev

Angular 8、9:ページで複数回使用された個々の再利用可能なコンポーネント(ng-block-ui統合)をブロックする方法| すなわち。複数のインスタンスを作成しますか?

分類Dev

Djangoのパスワードリセットフローの統合テストを作成できません

分類Dev

複数の保存がある場合、Spring Dataと@Transactionalはロールバックしません

分類Dev

Spring統合フローを使用した複数のフィルター式

分類Dev

複数の画像モーダルがあるページは、最初のモーダルの後に画像をロードしていません

分類Dev

Fluttervideo_playerは1ページに複数のビデオをロードできません

分類Dev

複数のファイルのアップロードを使用した場合、フィールドが機能しません

分類Dev

Spring Dataはページング可能なアクション引数の作成を処理しません

分類Dev

Spring統合:チャネルに送信する前にpayload.nameを設定します(ペイロードタイプはByteArrayOutputStreamです)

分類Dev

Springを介した統合テスト、hsqldbは「インデックスの使用」を認識しません

分類Dev

Django Serve Angularは空のページをスローし、静的ファイルをロードしません

分類Dev

R Plot_ly list Plots複数のプロットを.RmdR-Studio実行モードで表示しますが、ニットの場合は表示しません

分類Dev

Spring BootThymeleafは静的ファイルをロードしません

分類Dev

複数のペイロードがある場合、react / reduxアクションクリエーターは未定義を返します

Related 関連記事

  1. 1

    AndroidWebViewは複数のページをロードしません

  2. 2

    Spring統合:http:inbound-channeladapter-ペイロードでjsonオブジェクトを取得していません

  3. 3

    Spring統合で「Message」オブジェクトに複数のペイロードを埋め込むための最良の方法は何ですか?

  4. 4

    Spring統合を使用してドキュメントからXMLノードの数を取得できません

  5. 5

    複数の更新がない限り、GoogleChromeはWebページを正しくロードしません

  6. 6

    Springブート統合テストの実行時にApplicationContextをロードできませんでした

  7. 7

    Spring Integration 5.2.2.RELEASE-@IntegrationConverterとの統合フロー変換は、Jacksonデータバインドでは機能しません

  8. 8

    TFS2012ビルドと統合されたSonarQubeを介して複数のVSソリューションを分析することはできません

  9. 9

    iOSでのPaypal統合は、初めてログインウィンドウを表示しませんか?

  10. 10

    LambdaMessageProcessorはConversionServiceのペイロードタイプを認識しません

  11. 11

    デバッグレベルでSpring統合ログからペイロードを削除します

  12. 12

    Allauthは目的のトークンペイロードを返しません

  13. 13

    Formdataは複数の画像をアップロードしません

  14. 14

    a = bの場合、Rubyはbの重複変数aを作成しませんか?

  15. 15

    DBログインを使用したSpring BootとのSAML統合(複数のWebSecurityConfigurerAdapter)

  16. 16

    Angular 8、9:ページで複数回使用された個々の再利用可能なコンポーネント(ng-block-ui統合)をブロックする方法| すなわち。複数のインスタンスを作成しますか?

  17. 17

    Djangoのパスワードリセットフローの統合テストを作成できません

  18. 18

    複数の保存がある場合、Spring Dataと@Transactionalはロールバックしません

  19. 19

    Spring統合フローを使用した複数のフィルター式

  20. 20

    複数の画像モーダルがあるページは、最初のモーダルの後に画像をロードしていません

  21. 21

    Fluttervideo_playerは1ページに複数のビデオをロードできません

  22. 22

    複数のファイルのアップロードを使用した場合、フィールドが機能しません

  23. 23

    Spring Dataはページング可能なアクション引数の作成を処理しません

  24. 24

    Spring統合:チャネルに送信する前にpayload.nameを設定します(ペイロードタイプはByteArrayOutputStreamです)

  25. 25

    Springを介した統合テスト、hsqldbは「インデックスの使用」を認識しません

  26. 26

    Django Serve Angularは空のページをスローし、静的ファイルをロードしません

  27. 27

    R Plot_ly list Plots複数のプロットを.RmdR-Studio実行モードで表示しますが、ニットの場合は表示しません

  28. 28

    Spring BootThymeleafは静的ファイルをロードしません

  29. 29

    複数のペイロードがある場合、react / reduxアクションクリエーターは未定義を返します

ホットタグ

アーカイブ