【发布时间】:2021-11-10 05:36:04
【问题描述】:
我有一个出站网关。为了处理异常,我添加了一条建议链,
@ServiceActivator(inputChannel = "channelOutbound")
@Bean
public HttpRequestExecutingMessageHandler outboundEpay() {
final HttpRequestExecutingMessageHandler handler = new HttpRequestExecutingMessageHandler(
endpoint);
handler.setExpectedResponseType(String.class);
handler.setHttpMethod(HttpMethod.PUT);
handler.setOutputChannelName("channelReply");
handler.setAdviceChain(Collections.singletonList(advice()));
return handler;
}
@Bean
public Advice advice() {
final ExpressionEvaluatingRequestHandlerAdvice advice = new ExpressionEvaluatingRequestHandlerAdvice();
advice.setFailureChannelName("channelAdvice");
advice.setOnFailureExpressionString("payload");
advice.setTrapException(true);
return advice;
}
当出站网关连接的 API 返回 200 时,一切正常。但是当 API 返回 500 状态时,会引发异常,并且连接到“channelAdvice”的服务激活器会得到该异常。但我想获取 API 返回的响应正文以及 500 状态。我应该怎么做才能得到建议中的回应?
@ServiceActivator(inputChannel = "channelAdvice")
public void activatorAdvice(Message<?> message) {
//HERE
}
【问题讨论】:
标签: spring-boot spring-integration