使用Gateway从Spring Integration应用程序中使用Spring Boot应用程序

时间:2018-04-11 19:46:46

标签: spring-boot spring-integration

我刚开始使用Spring Integration 2进行Spring Integration。

我正在开发一个使用Spring Integration的HTTP出站网关来使用Spring启动服务的应用程序。

我正在使用Gateway从Spring Integration应用程序中使用Spring启动服务。

当我调用Gateway方法时,该方法将使用出站网关来调用spring引导服务,但请求似乎没有完成。当我通过浏览器发出HTTP GET请求时,它就开始了。

Spring Boot服务也没有收到请求。

使用网关使用Spring Boot 2服务时,我无法识别Integration应用程序中的错误。

我已经分享了我的Spring Boot 2应用程序以及我在以下github文件夹中使用它的Integration应用程序。它包含2个文件夹,一个用于spring Integration应用程序,另一个用于spring启动应用程序。 https://github.com/gsamartian/spring-int-demos

我使用RestController为Integration应用程序公开了一个REST接口。

我通过网址http://localhost:8763/callExternalServiceViaGateway

从集成应用程序访问启动应用程序

我可以直接从其端口访问spring boot应用程序。

如果有人能帮我确定原因,那就太好了。

谢谢,

1 个答案:

答案 0 :(得分:0)

您的问题是网关方法没有任何参数:

@Gateway(requestChannel = "get.request.channel", replyChannel = "reply.channel")
String getCustomMessage();

在这种情况下,网关用作接收。没有任何请求被发送,因为没有任何内容可以包装到payload。请参阅Reference Manual中有关此问题的更多信息。

现在我看到有payloadExpression的几个错误而且没有arg,所以我建议你在String payload网关方法中添加一些getCustomMessage() arg并用空字符串执行它。

将会查看错误并尽快修复它们。

感谢您提供了一个如何捕捉和重现的好样本!

https://jira.spring.io/browse/INT-4448

https://jira.spring.io/browse/INT-4449