0

每当我使用 wso2esb4.6.0 和 ActiveMQ5.5.1 时,我都在使用 wso2esb 4.7.0 和 ActiveMQ5.8.0,它工作正常 我在此消息存储的任何一个帮助下发布我的配置

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

消息处理器

<messageProcessor xmlns="http://ws.apache.org/ns/synapse"
                  class="org.apache.synapse.message.processors.forward.ScheduledMessageForwardingProcessor"
                  name="faisal"
                  messageStore="JMSQueue">
   <parameter name="max.delivery.attempts">4</parameter>
   <parameter name="interval">1000</parameter>
</messageProcessor

和代理是这样的

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

我在端点中定义了我的端点

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="JmsEndpoint">
   <address uri="http://192.168.1.122:8282/services/ReadingsMobile"
            format="soap11"/>
</endpoint>

现在我没有得到目标端点错误相同的配置在 wso2esb4.6.0 中工作但在 wso2esb4.7.0 中没有工作并且它给出这样的错误

[2013-08-21 16:48:32,049]  WARN - ForwardingHandler Property target.endpoint not found in the message context. Removing the message.
[2013-08-21 16:49:32,093]  WARN - SourceHandler Connection time out after request is read: http-incoming-13
4

2 回答 2

1

尝试在代理配置中进行以下修改以消除警告;

a) 将 <target> 替换为 <target endpoint="JmsEndpoint" >

b) 将“store”标签条目移到设置“target.endpoint”的属性之后。

这些变化似乎在我的环境中起到了作用。检查它是否也解决了您的问题。

希望这可以帮助。

于 2013-08-21T12:46:28.647 回答
0

基本上,您收到的错误是消息处理器无法从存储的消息上下文中找到 target.endpoint 属性。

原因是,您在设置此属性之前存储了消息。

您必须在流中的存储中介之前设置“target.endpoint”属性。

代理配置应如下所示。

<proxy xmlns="http://ws.apache.org/ns/synapse"
   name="Jms"
   transports="https http jms"
   startOnLoad="true"
   trace="disable">
  <description/>
  <target>
   <inSequence>
     <property name="messageType" value="application/json" scope="axis2"/>
     <log level="full"/>
     <property name="target.endpoint"
               value="JmsEndpoint"
               scope="default"
               type="STRING"/>
     <store messageStore="JMSQueue"/>
   </inSequence>
   <outSequence/>
  </target>
</proxy>
于 2013-09-14T15:34:07.233 回答