2011-09-13 54 views
1

我有以下情形:從Weblogic的讀,寫的ActiveMQ

閱讀從WebLogic隊列中的消息,我必須寫這一個ActiveMQ的隊列(交易方式)

(我不能使用JMS Bridge,外部JNDI由於各種原因不依賴於我)

有沒有辦法做到這一點?使用Spring?或JCA?

感謝

回答

1

Apache的駱駝是一個很好的選擇,在這裏 - 它帶有ActiveMQ的,可以直接在券商內部配置嵌入式(只是正常的春天,在用來啓動代理activemq.xml中);或者您可以在獨立流程中獨立於代理使用它。

要使用它,您需要爲兩個代理建立連接,並且有從Weblogic中的隊列到ActiveMQ等價物的路由。這裏有一個快速和骯髒的版本:

<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"> 
    <property name="connectionFactory"> 
     <bean class="org.apache.activemq.ActiveMQConnectionFactory"> 
      <property name="brokerURL" value="vm://localhost"/> 
     </bean> 
    </property> 
</bean> 

<bean id="weblogic" class="org.apache.camel.component.jms.JmsComponent"> 
    <!-- depends on a factory defined elsewhere --> 
    <property name="connectionFactory" ref="myWeblogicConnectionFactory"/> 
</bean> 

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> 
    <route> 
     <from uri="weblogic:myInputQueue"/> 
     <to uri="activemq:myOutputQueue"/> 
    </route> 
</camelContext> 

查看http://camel.apache.org/jms.html瞭解更多詳情。希望有所幫助。

+0

非常感謝您......這可以被視爲一個擴展事務的詳細說明? – Cris

+1

我不知道擴展事務是什麼意思,但Camel只是myInputQueue上的另一個消費者,並且是myOutputQueue上的生產者。如果你想要路由的活動進行交易,只需將以下內容添加到你的彈簧配置:

+0

對不起,沒有更精確的...是我想從輸入隊列讀取,寫入輸出隊列被視爲交易 – Cris