Spring integration 请求-应答spring集成jms入站和http出站

Spring integration 请求-应答spring集成jms入站和http出站,spring-integration,Spring Integration,http出站的响应未路由到临时JMS队列。我想知道如何重定向到正确的队列。我在replyTo中使用了header enricher,但它不起作用。请帮忙。已使用的ActiveMQTextMessage具有需要在其中发布响应的临时队列。能否解释为什么在JMS入站网关和HTTP出站网关之间有JMS支持的通道?如果您删除了它(依赖于一个直接通道),那么在使用HTTP响应创建JMS应答时,头应该传递。正确-只需将更改为简单的。按照现在的方式,您有两个WorkRequest(网关通过将消息发送到input

http出站的响应未路由到临时JMS队列。我想知道如何重定向到正确的队列。我在replyTo中使用了header enricher,但它不起作用。请帮忙。已使用的ActiveMQTextMessage具有需要在其中发布响应的临时队列。

能否解释为什么在JMS入站网关和HTTP出站网关之间有JMS支持的通道?如果您删除了它(依赖于一个直接通道),那么在使用HTTP响应创建JMS应答时,头应该传递。

正确-只需将
更改为简单的
。按照现在的方式,您有两个
WorkRequest
(网关通过将消息发送到
inputChannel
)的使用者。谢谢!成功了。但我现在得到了以下错误。“无法将[org.springframework.http.ResponseEntity]类型的对象转换为JMS消息。支持的消息有效负载为:字符串、字节数组、映射、可序列化对象。”我是Spring和Java新手,在出站网关上使用
预期响应类型
atribute。例如,如果您刚刚返回文本,请尝试将
expected response type=“java.lang.String”
添加到出站网关。我添加了。但是,将预期响应type=“java.lang.String”设置为出站网关对我不起作用。
<int-jms:channel id="inputChannel"  queue-name="WorkRequest"/>
<int-jms:inbound-gateway request-channel="inputChannel" request-destination-name="WorkRequest" extract-request-payload="true" reply-timeout="12000000"/>
<int:chain input-channel="inputChannel">

    <int-http:outbound-gateway
          url="http://localhost:8080/Validate.php?fileid={foo}"
          mapped-request-headers="jms*,reply*,HTTP_REQUEST_HEADERS"
          http-method="GET"
          reply-timeout="12000000" extract-request-payload="true">
         <int-http:uri-variable name="foo" expression="headers.fileid"/>
    </int-http:outbound-gateway>
</int:chain>