我是Spring Integration的新手,我刚开始研究规范。我的要求是获取HTTP请求 (例如:http://localhost:8080/LoginCheck?name=xyz&dob=zyz)。
任何人都可以指导我,如何继续谷歌搜索并找到一些信息,我们可以使用入站网关来读取参数,我的要求就像获取Http客户端数据并做一些过程,最后以XML格式响应客户端。
我只是在阅读输入数据时被困扰。
答案 0 :(得分:1)
您必须获取收到的消息的有效负载。应该有一个带有请求参数的Map。
我制作了一个简单的SI DSL应用程序,只做那个
@SpringBootApplication
public class JmsResponderApplication {
public static void main(String[] args) {
SpringApplication.run(JmsResponderApplication.class, args);
}
@Bean
public HttpRequestHandlingMessagingGateway httpGate() {
HttpRequestHandlingMessagingGateway gateway = new HttpRequestHandlingMessagingGateway(true);
RequestMapping requestMapping = new RequestMapping();
requestMapping.setMethods(HttpMethod.GET);
requestMapping.setPathPatterns("/foo");
gateway.setRequestMapping(requestMapping);
gateway.setRequestChannel(requestChannel());
return gateway;
}
@Bean
public DirectChannel requestChannel() {
return MessageChannels.direct().get();
}
@Bean
public IntegrationFlow flow() {
return IntegrationFlows.from(requestChannel())
.handle(new MessageHandler() {
@Override
public void handleMessage(Message<?> m) throws MessagingException {
Object payload = m.getPayload();
System.out.println(payload); // the payload is a Map that holds the params
System.out.println(m);
}
})
.get();
}
}
这是一个简单的Spring启动启动项目,具有以下依赖关系:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-java-dsl</artifactId>
<version>1.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
来源 - here