3

我正在尝试使用 Spring Boot 1.5.2.RELEASE + Camel (Spring Boot starter) 2.19.2 来监听 ActiveMQ 队列,然后将消息作为其主体发布到休息端点 URL(POST 方法)。实现这一目标的最佳方法是什么?我收集了一些信息,并试图将它们联系在一起,但有点困惑。

这是我为 Camel Rest DSL 收集的内容,我不太确定下面的骆驼是通过这个创建这些休息服务还是它只是一个已经暴露的端点,在我的情况下它是一个已经暴露的端点

rest("/basePath")
  post("/someEndpoint").to("direct:restEndpoint")

使用上面是我为 ActiveMQ 收集的内容,我不太确定是否正确

from("activemq:queue:<queue_name>").to("direct:restEndpoint")

但同样,我不太确定如何收听 ActiveMQ 队列中的新消息,还是 Camel 默认情况下总是会这样做?此外,我需要将消息作为帖子正文传递给我的休息端点。我还看到了一些对 camel-http4 和 camel-http 的引用,我完全糊涂了。

任何帮助将不胜感激。

4

1 回答 1

3

开始使用 Camel 时会出现一些混淆,但您的最终解决方案将类似于:

from("activemq:queue:my-route")
  .process(/* change the in/out messages if you need to */)
  .to("http4://your-endpoint.com");

不要试图简单地复制/粘贴此代码,直到它起作用。我的 Camel 经验法则是:始终阅读组件文档并尝试在您的软件中使用它。在你的情况下,我建议:

  1. 阅读ActiveMQ 组件文档并尝试从 ActiveMQ 读取/写入Log
  2. 从Timer生成一些输入并使用HTTP4 Component发送到您的 Rest 端点;

您的第一条路线将需要一些时间来处理简单的事情,但您会很快进入流程。

于 2017-08-22T15:12:32.343 回答