当前位置: 首页 > 知识库问答 >
问题:

动态jms出站网关

金瑞
2023-03-14
request -> appA -> activemq -> appB -> activemq -> appA -> response
<bean id="jmsSecureConnectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${brokerUrl}" />
</bean>

<bean id="jmsPooledConnectionFactory" class="org.apache.activemq.jms.pool.PooledConnectionFactory">
    <property name="connectionFactory" ref="jmsSecureConnectionFactory" />
    <property name="createConnectionOnStartup" value="false" />
    <property name="maxConnections" value="1" />
    <property name="maximumActiveSessionPerConnection" value="1" />
    <property name="idleTimeout" value="10" />
</bean>

<int:channel id="clientGatewayChannel" />

<int:gateway id="jmsMessageServiceGateway"
    service-interface="com.abc.JmsMessageServiceGateway"
    default-request-channel="clientGatewayChannel" />

<int-jms:outbound-gateway request-channel="clientGatewayChannel"
    request-destination-expression="'REQUEST.' + payload.processor"
    reply-destination-expression="'RESPONSE.' + payload.processor"
    extract-request-payload="true" connection-factory="jmsPooledConnectionFactory" />

<bean id="jmsChannelResolver" class="com.abc.JmsChannelResolver" />

<int:channel id="dynamicRouter" />

<int:router input-channel="dynamicRouter"
    expression="@jmsChannelResolver.resolve(payload.processor)" />

我可以看到请求消息被加入和出列,响应消息被加入和出列。但我有个例外,

org.springframework.integration.support.channel.ChannelResolutionException: no output-channel or replyChannel header available

我应该如何检索响应?

共有1个答案

邬阳
2023-03-14

该错误意味着发送到DynamicRouter的任何内容都不是来自设置ReplyChannel标头的组件(示例包括gateway、入站网关和MessagingTemplate.SendandReceive()方法)。

或者,在消息到达DynamicRouter之前,某些东西已经删除了该标头。

只要上游的流量是正确的,你所拥有的应该能很好地工作。

 类似资料:
  • 我正在尝试将spring集成配置为向队列发送消息,然后接收消息,即非常简单的事情: 我认为解耦所必需的是在流程的两端都有一个消息网关。因此,我的第一次尝试(有效)如下所示: 其中MessageReceiverHandler()是扩展AbstractMessageHandler的bean。 所以上面我们有一个用于出站消息的消息网关。我假设我们也应该有一个用于入站消息的网关,允许我们将传入消息处理与应

  • 问题内容: 我试图在Scrapy及其xpath选择器的帮助下抓取一个非常简单的网页,但由于某些原因,我拥有的选择器在Scrapy中不起作用,但在其他xpath实用程序中却起作用 我正在尝试解析此html代码段: Scrapy parse_item代码: Scrapy不会从中提取任何文本,但是如果我得到相同的xpath和html代码片段并在此处运行它,则效果很好。 如果我使用这个xpath: 我得到

  • 问题陈述: Spring amqp outbound gateway从不同的线程生成应答(如jms outbound gateway,具有不同的队列,使用相关键关联请求/响应)。 无法将消息与此示例关联。 Spring集成 配置 服务 错误: 组织。springframework。整合。处理程序。ReplyRequiredException:处理程序“outboundGtwyId”未生成回复,其“

  • 我想在不使用应用编程接口的情况下访问instagram页面。我需要找到追随者的数量,所以这不仅仅是一个源下载,因为页面是动态构建的。 我发现HtmlUnit是一个模拟浏览器的库,这样JS就会被渲染,我就能得到想要的内容。 但是,此调用会导致以下异常: 所以它无法访问该脚本,但如果我正确解释了这一点,它只是为了加载字体,我不需要。我在google上搜索了如何告诉它忽略页面的某些部分,并找到了这条线索

  • 问题内容: 我需要从此网站Link中抓取新闻公告。公告似乎是动态生成的。它们不会出现在源代码中。我通常使用机械化,但是我认为它不会起作用。我该怎么办?我可以使用python或perl。 问题答案: 礼貌的选择是询问网站所有者是否具有允许您访问其新闻报道的API。 不太礼貌的选择是跟踪页面加载时发生的HTTP事务,并确定哪一个是AJAX调用,该调用会提取数据。 看起来就是这个。但是看起来它可能包含会

  • 考虑使用Spring集成进行动态入站/出站配置。使用我们的系统的客户可能有n个,每个客户都有自己的入站FTP/webservice配置,以便将文件拉入我们的系统进行处理。同样,在处理完这些数据之后,每个客户都可以进行出站FTP/webservice配置,需要在其中推送报告(最终结果)。spring集成是否适合这种情况?如果是的话,请你推荐或指出其中的任何一个例子。Webservice包括REST和