1
私は、データを交換するためのシステム統合バネ統合を使用しています。 AppClientのAppServerはTableInfoRequestとAppServerを使用して応答し、TableInfoResponse.Itは正常に動作します。春の統合でHTTP 204で応答する方法
@MessagingGateway() public interface SyncGateway { @Gateway(requestChannel = "requestFlow.input") TableInfoResponse info(TableInfoRequest payload); }
しかし、私は応答してデータを削減する応答にHTTPコード204データなしで応答します。だから私はどのようにDSLを設定できますか?
@Bean public IntegrationFlow syncFlow() { return IntegrationFlows .from( Http.inboundGateway(HTTP_ENDPOINT_PATH).id("syncGateway") .replyTimeout(serverProps.getReplyTimeout() * 1000) .requestTimeout(serverProps.getRequestTimeout() * 1000) .messageConverters(new SerializingHttpMessageConverter()) .convertExceptions(true) .mappedResponseHeaders(IDENTIFICATION, TOKEN)) .channel(c -> c.direct("syncChannel") .interceptor(new ChannelAuthenticationInterceptor(dataService))) .handle(syncHandler) .get(); }
syncHandlerはTableInfoResponse.AndでappclientがtableInfoResponseを取得するために syncGateway.info(リクエスト)を使用し返されます。
つまり、 '204 No Content'返信を返すには、本当にそれを行うべきです - ' HttpStatus.NO_CONTENT'でInbond Gatewayに返信してください:http://docs.spring.io/spring-integration /reference/html/http.html#http-response-statuscode –
あなたの答えをありがとうございます。しかし、私はデータがない場合204に返信する方法を理解していません。 '.handle(syncHandler)'もオブジェクトに返信します。また、AppClientはオブジェクトを受け取ることも望みます - '.expectedResponseType(Serializable.class)' – Roy