我刚刚开始与Spring Boot 2进行Spring Integration。
我正在开发一个应用程序,该应用程序使用Spring Integration的HTTP出站网关来使用Spring启动服务。
我正在使用网关从 Spring 集成应用程序使用弹簧引导服务。
当我调用 Gateway 方法时,该方法又将使用出站网关调用 spring 启动服务,请求似乎没有完成。当我通过浏览器发出HTTP GET请求时,它就会发生。
Spring 引导服务也不会收到该请求。
在使用网关使用 Spring Boot 2 服务时,我无法确定集成应用程序中的问题。
我已经共享了我的 Spring Boot 2 应用程序以及我用来在下面的 github 文件夹中使用它的集成应用程序。 它包含 2 个文件夹,一个用于 Spring 集成应用程序,另一个用于 Spring 启动应用程序。 https://github.com/gsamartian/spring-int-demos
我已经公开了一个使用 RestController 的集成应用程序的 REST 接口。
我通过 url 从集成应用程序访问启动应用程序,http://localhost:8763/callExternalServiceViaGateway
我能够直接从其端口访问 Spring 启动应用程序。
如果有人能帮助我确定原因,那就太好了。
谢谢
您的网关方法没有任何参数的问题:
@Gateway(requestChannel = "get.request.channel", replyChannel = "reply.channel")
String getCustomMessage();
在这种情况下,网关用作接收。不发送任何请求,因为没有任何东西要包装到payload
。有关此事的更多信息,请参阅参考手册。
现在我看到payloadExpression
和没有arg的几个错误,所以我建议你在getCustomMessage()
网关方法中添加一些String payload
arg并使用空字符串执行它。
将查看错误并尽快修复它们。
感谢您提供如何捕捉和繁殖的好样本!
https://jira.spring.io/browse/INT-4448
https://jira.spring.io/browse/INT-4449