如何在 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 { };