java - Spring Integration Java DSL - 如何调用 int-http :outbound-gateway?

标签 java spring http spring-integration dsl

我在进行 ReST API 调用的流程中有一 block :

<int:channel id="requestChannel"/>

<int-http:outbound-gateway request-channel="requestChannel"
                           reply-channel="logger"
                           url="${api.base.uri}/data"
                           http-method="PUT"
                           expected-response-type="java.lang.String"/>

<int:logging-channel-adapter id="logger"
                             logger-name="logger"
                             expression="payload"
                             level="INFO"/>

我正在尝试使用 Java DSL 复制它,但找不到足够的文档。任何帮助将不胜感激。

最佳答案

是的,Spring Integration Java DSL 还没有为 HTTP 提供命名空间工厂。

无论如何,我们可以继续使用它的通用组件来做到这一点:

    @Bean
    public MessageHandler logger() {
        LoggingHandler loggingHandler = new LoggingHandler("INFO");
        loggingHandler.setLoggerName("logger");
        // This is redundant because the default expression is exactly "payload"
        // loggingHandler.setExpression("payload");
        return loggingHandler;
    }

    @Bean
    public MessageHandler httpGateway(@Value("${api.base.uri}/data") URI uri) {
        HttpRequestExecutingMessageHandler httpHandler = new HttpRequestExecutingMessageHandler(uri);
        httpHandler.setExpectedResponseType(String.class);
        httpHandler.setHttpMethod(HttpMethod.PUT);
        return httpHandler;
    }

    @Bean
    public IntegrationFlow httpFlow(MessageHandler httpGateway) {
        return IntegrationFlows.from("requestChannel")
                .handle(httpGateway)
                .handle(logger())
                .get();
    }

从另一方面,提到的文档演示了完全适用于 HttpRequestHandlingMessagingGateway 的示例...

更新

顺便说一句:随时提出JIRA向 Java DSL 添加 HTTP 支持的票证。

关于java - Spring Integration Java DSL - 如何调用 int-http :outbound-gateway?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31825508/

相关文章:

java - 获取 Spring MVC 中 JSON 表单绑定(bind)错误的详细信息

java - 使用 apache-commons-fileupload 在 Spring 中上传文件时出现问题

java - 拦截器中从MessageContext获取ServletContext

http - 使用 netcat 代理的 Firebug 网络面板中的“中止”状态

java - 添加安全 header

java - Java 项目中的图像等文件存储在哪里?

java - Spring安全配置requestMatchers.hasRole()总是给出403禁止状态

java - 在loadrunner 9.52中使用java over WEB(http/html)协议(protocol)

javascript - Node.JS 函数返回 http 响应值

java - int 不会覆盖 Java 中的 Integer