【问题标题】:Spring Integration Gateway with no arguments没有参数的 Spring 集成网关
【发布时间】:2012-04-05 03:04:15
【问题描述】:

在我的网关上,我有一个方法

@Gateway
String commsTest();

我的想法是我可以从 bean 调用 commsTest 并使用 spring 集成将其连接到将检查通信的服务激活器。

当我这样做时,我得到一个receive is not supported, because no pollable reply channel has been configured 错误。我意识到这是因为没有参数的方法意味着“我正在尝试从频道轮询消息”

这是一个两部分的问题。

  1. 从频道轮询消息是什么意思。
  2. 如何获得我想要的功能。

【问题讨论】:

    标签: java spring spring-integration


    【解决方案1】:

    Spring Integration 目前没有没有负载的消息的概念。默认情况下,不带参数的网关方法意味着您要接收数据(而不是发送数据或发送和接收数据)。

    您可以更改该默认行为,如 in the reference documentation 所述。

    【讨论】:

    • 我认为更新后的文档现在位于docs.spring.io/spring-integration/reference/html/…
    • 谢谢;修复了链接。
    • 嗨@GaryRussell,我有点困惑。我遇到了这个问题,但我没想到,因为我已经用@Gateway(payloadExpression="''") 标记了我的无参数网关接口方法。但是我仍然收到错误“不支持接收,因为没有配置可轮询回复通道”。用@Payload("''") 替换@Gateway(payloadExpression="''") 解决了这个问题。但是为什么前者不起作用?我已经在其他情况下使用了@Gateway(payloadExpression="<something>")(使用带有1+ args的方法)并且效果很好,为什么我需要在这里使用@Payload呢?是故意的吗?
    • 不要在 cmets 中对近 10 年的答案提出新问题!!!提出一个显示代码、配置的新问题。
    • @GaryRussell 虽然我相信这个主题正是这个并且可能对其他登陆这里的人有所帮助,但我创建了一个new question。
    猜你喜欢
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2018-06-15
    • 2014-07-24
    相关资源
    最近更新 更多