3

我使用 JAX-RS Jersey 创建了一个 RESTful 服务,并将其部署在一个 tomcat 7 服务器上。

现在我想使用 JMS。请求将被捕获并定向到消息代理上的消息队列,并从那里将消息推送到 REST 服务,然后将响应重定向到最终用户。

我正在使用 Activemq。如何将 Activemq 与 RESTful 服务集成?

4

1 回答 1

3

您的 Web 服务接口需要提供两个功能:submitpoll.

  • 客户端调用submit后者将请求作为 JMS 消息发送到传入队列,并返回消息 ID。submit之后返回。
  • 请求处理异步运行。例如,消息驱动 bean (MDB) 侦听传入队列、处理消息并将结果放入传出队列。它将结果消息的相关 ID设置为传入请求的消息 ID。需要关联 ID 才能连接请求及其结果。
  • 客户端poll使用消息 ID(由 返回submit)作为参数调用该函数:poll使用相关 ID 上的 JMS 消息选择器检查结果队列。它返回“尚未完成”或结果。客户端可能需要poll多次调用才能得到结果。

笔记:

  • JMS 消息选择器是一个过滤器(就像数据库中的 where 子句):在这种情况下,它需要识别给定请求的结果。
  • setJMSCorrelationID的 Javadoc
于 2013-09-25T10:19:53.493 回答