0

我是 Spring Integration 的新手,我必须从 3rd 方 Web 服务获取在线代理列表,我尝试配置 Spring Integration 来获取它,但就channel部分而言,我不确定如何配置它。

我的原始配置如下,我从用于向 3rd 方 Web 服务发送请求的示例中复制:

public interface WebServiceGateway {

    @Gateway(requestChannel = "getStatusChannel")
    public String getStatus(String var);     <------ being forced to send something
}

在我的集成配置中,

@Configuration
public class IntegrationConfiguration {

   @Bean
    public MessageChannel getStatusChannel() {
        return MessageChannels.direct().get();
    }
}

问题是,我没有向 web 服务发送任何参数,requestChannel它迫使我这样做,所以我修改了gateway部分:

public interface WebServiceGateway {

    @Gateway(replyChannel = "getStatusChannel")
    public String getStatus();
}

这部分保持不变:

@Configuration
public class IntegrationConfiguration {

   @Bean
    public MessageChannel getStatusChannel() {
        return MessageChannels.direct().get();
    }
}

它提示我java.lang.IllegalStateException: receive is not supported, because no pollable reply channel has been configured,为什么我不能MessageChannel用作回复频道?我应该如何配置IntegrationConfiguration

4

1 回答 1

0

请浏览此https://spring.io/blog/2014/11/25/spring-integration-java-dsl-line-by-line-tutorial

您只需要定义一个如下所示的 IntegrationFlow:

IntegrationFlows.from(requestchannel())
                .handle("requestHandler","handleInput")
                .channel(replyChannel())            
                .get();
于 2017-08-03T05:53:01.380 回答