Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel ApacheCamel-war项目如何处理队列并设置为另一个队列?_Apache Camel - Fatal编程技术网

Apache camel ApacheCamel-war项目如何处理队列并设置为另一个队列?

Apache camel ApacheCamel-war项目如何处理队列并设置为另一个队列?,apache-camel,Apache Camel,我将Pojo对象设置为war中的队列(来自独立应用程序),然后使用war,我需要从队列读取并处理对象。完成后,该对象将设置为另一个队列(已处理队列)。所有的处理都发生在战争中。因此,将有另一个应用程序从已处理队列中读取并处理对象 那么,处理这种情况的最佳方法是什么?是否有我可以获得的端到端示例?只需使用外部JMS代理(ActiveMQ),每个应用程序都可以独立连接到此代理,并从队列中生成/使用…这是连接应用程序与JMS的标准/轻量级方法 <!--APP1--> <camelCo

我将Pojo对象设置为war中的队列(来自独立应用程序),然后使用war,我需要从队列读取并处理对象。完成后,该对象将设置为另一个队列(已处理队列)。所有的处理都发生在战争中。因此,将有另一个应用程序从已处理队列中读取并处理对象


那么,处理这种情况的最佳方法是什么?是否有我可以获得的端到端示例?

只需使用外部JMS代理(ActiveMQ),每个应用程序都可以独立连接到此代理,并从队列中生成/使用…这是连接应用程序与JMS的标准/轻量级方法

<!--APP1-->
<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
   <from uri="activemq:inQ" />
   <to uri="bean:MyBean" />    
   <to uri="activemq:outQ" />
  </route>
</camelContext>

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

<!--APP2-->
<camelContext xmlns="http://camel.apache.org/schema/spring">
  <route>
   <from uri="activemq:outQ" />
   ...
  </route>
</camelContext>

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

...

有关更多详细信息,请参阅本页:

这当然不是过分,因为读取和写入JMS队列并不容易,您需要编写代码。使用Camel,可以完全用XML完成,也可以用代码更简单,只需几行代码。嗨,克劳斯·易卜生,谢谢你的评论,你能告诉我如何处理上述场景吗?处理这个问题的最佳方法是什么?我可以得到任何端到端的示例吗?嗨,boday,为什么您建议使用外部JMS代理,就像我可以配置camel一样?还有,我如何在不使用Spring进行XML配置的情况下使用JavaDSL实现这一点?你能发布JavaDSL示例吗?我也试过上面的例子。不幸的是,这不是我想要的方式。当我将我的bean设置为inQ时,它会显示已处理,但不会转到outQ。有什么想法吗?我建议使用外部代理,因为您有2个应用程序……否则,您可以使用嵌入式代理,但当app1关闭时,app2无法处理Q,等等……否则,您只需确保您的bean返回处理后的结果,以便将其添加到outQ的交换中(还需要确保其可序列化)