在JMS队列中插入消息,然后使用Spring Integration发回确认

时间:2016-02-04 19:47:56

标签: jms spring-integration spring-jms

我有一个服务,它通过http入站适配器接收xml消息,然后将它们转换为文本,成为发送出去的电子邮件的内容。 我现在需要先将这些消息插入到JMS队列中,然后在将消息插入Q后将确认作为200 ok发回,然后继续进行剩余的处理。

  <int-http:inbound-channel-adapter channel="inputChannel" 
    id="httpInbound"  
    auto-startup="true" 
    request-payload-type="java.lang.String"
    path="/message"  
    supported-methods="POST" 
    error-channel="logger" >
    <int-http:request-mapping consumes="application/xml" />
</int-http:inbound-channel-adapter>


<int:chain id="chain" input-channel="inputChannel" >
 <int:service-activator ref="mailTransformerBean" method="transform" />
</int:chain>

服务激活器负责将xml转换为电子邮件的处理。

在此之前,我需要合并一个JMS队列,其中将插入收到的消息,然后发回确认。这是为了保留消息并在服务失败的情况下重试。 我想将其设置为以JMS队列作为端点的事务。 我该如何处理?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找in-process persistence storage之类的内容,请查看SubscribableJmsChannel

  

上例中的频道与普通&lt;频道/&gt;的行为非常相似主要Spring Integration命名空间中的元素。它可以通过&#34;输入通道&#34;和&#34;输出通道&#34;任何端点的属性。区别在于此通道由名为&#34; exampleQueue&#34;的JMS队列实例支持。