如何在 spring 集成中为 HttpRequestExecutingMessageHandler 声明 outputChannel 和处理 http 响应
How to declare outputChannel and handle http response for HttpRequestExecutingMessageHandler in spring integration
下面是HttpRequestExecutingMessageHandler的配置
@Bean
@ServiceActivator(inputChannel = "httpRequestChannel")
public HttpRequestExecutingMessageHandler httpRequestExecutingMessageHandler() {
HttpRequestExecutingMessageHandler handler = new HttpRequestExecutingMessageHandler(serviceUrl);
handler.setCharset(StandardCharsets.UTF_8.displayName());
handler.setOutputChannel(httpResponseChannel());
handler.setExpectedResponseType(String.class);
return handler;
}
我应该如何配置 httpResponseChannel 来处理 httpResponse。如果 http 状态代码为 201,我想将原始文件移动到成功文件夹,或者移动到错误文件夹以供休息。
我正在使用 spring 集成 5 和 spring 一起启动。
这不是 httpResponseChannel
的责任。你需要考虑为这个 HttpRequestExecutingMessageHandler
添加一个 ExpressionEvaluatingRequestHandlerAdvice
: https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/messaging-endpoints-chapter.html#expression-advice
你已经可以决定成败了。
@ServiceActivator
在这件事上有这个选项:
/**
* Specify a "chain" of {@code Advice} beans that will "wrap" the message handler.
* Only the handler is advised, not the downstream flow.
* @return the advice chain.
*/
String[] adviceChain() default { };
下面是HttpRequestExecutingMessageHandler的配置
@Bean
@ServiceActivator(inputChannel = "httpRequestChannel")
public HttpRequestExecutingMessageHandler httpRequestExecutingMessageHandler() {
HttpRequestExecutingMessageHandler handler = new HttpRequestExecutingMessageHandler(serviceUrl);
handler.setCharset(StandardCharsets.UTF_8.displayName());
handler.setOutputChannel(httpResponseChannel());
handler.setExpectedResponseType(String.class);
return handler;
}
我应该如何配置 httpResponseChannel 来处理 httpResponse。如果 http 状态代码为 201,我想将原始文件移动到成功文件夹,或者移动到错误文件夹以供休息。
我正在使用 spring 集成 5 和 spring 一起启动。
这不是 httpResponseChannel
的责任。你需要考虑为这个 HttpRequestExecutingMessageHandler
添加一个 ExpressionEvaluatingRequestHandlerAdvice
: https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/messaging-endpoints-chapter.html#expression-advice
你已经可以决定成败了。
@ServiceActivator
在这件事上有这个选项:
/**
* Specify a "chain" of {@code Advice} beans that will "wrap" the message handler.
* Only the handler is advised, not the downstream flow.
* @return the advice chain.
*/
String[] adviceChain() default { };