0

我正在使用 wso2esb4.7.0 和 ActiveMQ5.8.0 我希望将消息存储在队列中为此我尝试使用此代码但它不起作用我创建了有助于存储消息的存储,我的消费过程已经在 J​​AVA 代码中完成所以我如果我这样做,不必担心消耗我的消息将出现在 acivemq UI 我的配置是这样的

<messageStore name="JMSQueue" class="org.wso2.carbon.message.store.persistence.jms.JMSMessageStore" xmlns="http://ws.apache.org/ns/synapse">
   <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
   <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
   <parameter name="store.jms.destination">faisal5_Queue</parameter>
   <parameter name="store.jms.JMSSpecVersion">1.1</parameter>
   <parameter name="store.jms.cache.connection">false</parameter>
</messageStore>

我正在尝试通过代理传递消息,为此我编写了简单的代理服务

<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="Jms"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="messageType" value="application/json" scope="axis2"/>
         <log level="full"/>
         <property name="OUT_ONLY" value="true"/>
         <store messageStore="JMSQueue"/>
      </inSequence>
      <outSequence/>
   </target>
   <description/>
</proxy>

在这种情况下,我的队列没有在 ActiveMQ 中创建为什么如果我创建消息进程会发生这种情况,那么只有我的队列出现在 ActiveMQ UI 中你会为此编写示例代码吗?我的场景很简单,我希望存储我的客户端消息而不会失败,它们会消耗在存储过程之后

4

2 回答 2

0

您的代理和消息存储没问题,我测试了这些。我认为您没有正确使用 ActiveMQ 配置 ESB。

按照这个链接并按照提到的那样放置 jar 并编辑 Axis2.xml。然后尝试使用您的代码。它应该工作

于 2013-08-22T09:58:24.007 回答
0

您可以简单地使用以下配置将消息存储在 activemq 中。由于您没有使用消息处理器,因此不需要创建消息存储。因此,您可以将消息简单地存储在队列中,如下所示。

<proxy name="JmsProxyTest"
      transports="https http"
      startOnLoad="true"
      trace="disable">
  <target endpoint="jmsEndpoint">
     <inSequence>
        <property name="OUT_ONLY" value="true"/>
        <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
     </inSequence>
     <outSequence>
        <drop/>
     </outSequence>
  </target>

 <endpoint name="jmsEndpoint">
  <address uri="jms:/faisal5_Queue?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://127.0.0.1:61616&amp;transport.jms.DestinationType=queue"/>

此外,您最好检查您是否正确配置了带有 esb 的 activemq。谢谢。

于 2013-08-22T09:51:48.540 回答