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

带有外部ActiveMQ代理的Apache camel

白昊东
2023-03-14

我正在学习使用ApacheCamel解决一个消息传递问题,以下几点说明问题的要点。

  1. 有一个外部ActiveMQ代理,它需要JSON格式的消息,并返回JSON格式的响应
  2. 发送给代理的JSON消息必须在运行时通过从用户获取参数来创建
  3. 返回的响应将返回给用户

我发现很难按照书中的例子来解决我的问题。请让我知道如何使用ApacheCamel解决这个问题。

谢谢!

共有1个答案

穆展鹏
2023-03-14
  • 使用camel-active emq连接到您的ActiveMQ代理
  • 使用camel json编组支持将请求转换为此格式...

只需要像这样设置activemq组件

  <bean id="activemq"
        class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="brokerURL" value="tcp://mybroker:61616"/>    
  </bean>

然后定义从ActiveMQ队列产生/消耗的路由,根据需要转换到/从JSON...

例如其中一个路由接收客户端请求,转换为JSON并发送到队列

from("direct:clientRequest")
    .marshal().json()
    .to("activemq:firstQueue");

然后从另一个队列和JSON散集拾取另一条路由,并对其做些什么...

from("activemq:otherQueue")
    .unmarshal().json()
    .to("<do something>");
 类似资料:
  • 根据使用JMS 1.1的官方文档,ActiveMQ 5.15是否可以与JMS 2.0配合使用。将ActiveMQ 5.15与JMS 2.0配合使用有何意义。如果ActiveMQ 5.15 JMS 2.0不是一种可行的方法,那么Artemis是一个很好的替代品吗?Artemis是否足够稳定,可以用于生产级企业应用程序?

  • 我一直在尝试将jar转换为exe。该程序(jar)使用蓝牙库“Bluecove”,这是某个目录中的另一个jar。该程序还使用Java Swing,通常是JFrame等。当从Netbeans或Eclipse中运行时,该程序运行良好。现在是我部署它的时候了,因此我需要将其转换为exe。但我一直无法让最终的可执行文件与“Bluecove”链接。我尝试了JSmooth和Launch4j,但是使用这两个工具

  • 当使用simpleBroker时,我可以使用/user/**目的地格式向单个用户发送消息,该格式在UserDestination中拾取并转换。我还可以使用它发送到特定会话,或发送到特定用户的所有会话。 当使用ActiveMQ或RabbitMQ等外部代理时,只要发送方也能够使用/user/**或其助手注释@SentToUser等,这也是可能的。 但是,如果我不在本地处理这些消息,并且我有另一个消费者

  • 问题内容: 我使用.jar开发一个项目以重用代码。 因此,我在名为TOOLS.jar的.jar上进行了开发,并在文件HelloWorld.java中开发了一个简单的应用程序,该应用程序从TOOLS.jar引用了我的软件包TOOLS。 我使用以下命令行进行编译: 成功,当我想执行我的应用程序时,我使用以下命令(位于C:\ MyApp文件夹中): 成功了,但是我的问题是: 当我有多个外部.jar文件时

  • 我正在我的应用程序(app1)中使用KeyClope(版本8.0.1)作为身份代理。在我的应用程序中,用户可以使用外部idp(谷歌、fb)或从我们的登录页面进行签名。现在,我设置了另一个keyclope实例,并使用OIDC将其配置为IDP。它工作得很好。 如果用户已准备就绪,请登录外部idp(谷歌、fb),并从app2的网页上单击我的应用程序(app1)。有没有办法,我可以自动让用户进入,而不是将

  • 我们曾经有一个包含EJB jar和WAR的EAR。我们从EJB向战争发送了一个dto类。一切都很好。 现在我们已经尝试从EAR中提取WAR,并创建了WAR使用的EJB-client(API jar)。这个API jar包括我们从EJB发送到WAR的dto类。在EAR中,API部署在lib目录中。 在WAR中,我们在WEB-INF/lib目录中有相同的API jar。 但现在我们在访问dto类的内部