プロジェクトで Spring Integration を使用しています。アプリケーションで使用されるエンドポイントは、インバウンド ゲートウェイ、ヘッダー ベースのルーター、トランスフォーマー、スプリッター、サービス アクティベーターです。
成功フロー (例外ではない) の場合、インバウンドゲートウェイの応答チャネルが目的の応答を取得し、クライアントがその応答を取得しますが、例外が発生した場合は、カスタマイズされたエラー応答を送信したいと思いますが、これは私のようには機能しません。要件。
上記の要件を達成するためにエラーチャネルを使用していますが、成功していません。
受信ゲートウェイ、エラー チャネルなどの構成を見つけてください。構成でチェーンを使用していません。
<int-http:inbound-gateway id="inboundGateway"
supported-methods="GET, POST" request-channel="requestChannel"
path="/services/tylv/{requestParam}" reply-channel="responseChannel"
error-channel="errorChannel">
</int-http:inbound-gateway>
<int:transformer ref="errorHandler"
input-channel="errorChannel" method="generateErrorResponse"
output-channel="responseChannel" />
<bean id="errorHandler"
class="com.csam.wsc.enabling.integration.transformer.ErrorHandler" />
例外の場合、com.csam.wsc.enabling.integration.transformer.ErrorHandler.generateErrorResponse(ErrorMessage) が正常に呼び出されました。この API は例外を処理し、エラー応答パケットを生成しますが、クライアントに送信されず、HTTP ステータス コード 200 のみが送信されます。送信済。
理想的には、トランスフォーマーの出力チャネルは受信ゲートウェイの応答チャネルであり、成功した場合 (例外なし) にステータス コード 200 と共に応答パケットを既に送信しているため、送信する必要があります。
error-channel の場合、受信ゲートウェイの reply-channel が機能していないと思いますが、よくわかりません。
エラーチャネルの設定を手伝ってください。