1

完全に理解していない xml 構成の受信アダプターの例を見つけました。設定では、REST リクエスト設定のリクエスト方法、消費される形式などを指定します。

Spring Integration の観点からは、応答は実際にメッセージ チャネルにフィードしているものであるため、応答はより重要であると考えました。私は正しいですか?

HTTP インバウンド アダプターは、HTTP 要求を呼び出すメッセージ エンドポイント (実際にはメッセージの開始点) として使用されます。これは、REST サービスの URL、たとえば "http://myRest/transfer/next" を呼び出し、結果を SI メッセージ チャネルにフィードします。 . そうですか?

例を見つけるのが難しいか、他の例を私のニーズを満たすものに変換するのは難しいです. Java または Dsl で構成したいのに対し、XML で構成された例はさらに多くあります。

TransferRequestメッセージハンドラーによって処理されるためにSIチャネル「transfer_next_channel」に供給される私のオブジェクトのJSON表現を返すRESTサービス(私が提供する)が呼び出される例を探しています。

私のコード アプローチはかなりスケルトンのようなものです。どうすればいいですか?

@Bean
public IntegrationFlow httpInboundFlow() {
    return IntegrationFlows
            .from(Http.inboundChannelAdapter("http://myRest/transfer/next")
                    .requestMapping(r -> r
                            .methods(HttpMethod.GET)
                            .consumes("text/html"))
                    .requestPayloadType(TransferRequest.class)
                    .headerMapper(myHeaderMapper)
                    )
            .channel("transfer_next_channel")
            .get();
}

@Bean
@ServiceActivator(inputChannel = "transfer_next_channel")
public MessageHandler handler() {
    return new MessageHandler() {
        @Override
        public void handleMessage(Message<?> message) throws MessagingException {
            System.out.println("myHandler: " + message.getPayload());
            System.out.println("myHandler: " + message.getHeaders());
        }
    };
}

編集1

すべては、TCP/IP を介して永続的な DB 状態から文字列メッセージへの人物のデータ メッセージを生成することです。最初に、どのメッセージが必要かという情報があります。外部 REST サービスを介して提供されます。結果はTransferRequestエンティティです。これから、メッセージを生成する必要があります。必要なデータ メッセージであるTransferRequest何らかの種類に変換するための別の外部 REST サービス呼び出しです。DataMessageその結果は、TCP/IP クライアントが接続されるとすぐに TCP/IP サーバー経由で配信されます。

編集2

メッセージチャネルは次のとおりです。外部サービスへのリクエスト「http://myRest/transfer/next」で始まり、TransferRequest(を含むpersonId)を取得し、それをメッセージとしてチャネルにプッシュし、トランスフォーマー/ハンドラーが(別の)外部サービスをリクエストします」 http://myRest/message/{personId}" を取得DataMessageし、メッセージとして別のチャネルにプッシュし、メッセージを TcpOutboundGateway にプッシュして外部システムで受信できるようにするハンドラー。

4

2 に答える 2