简体   繁体   English

WSO2 ESB和MB消息存储库丢失消息正文

[英]WSO2 ESB and MB Message Store looses Message Body

im trying to face up to the integration between WSO2 ESB 4.7.0 and WSO2 MB 2.1.0, following the instructions written at this URL: http://docs.wso2.org/display/MB210/Integrating+WSO2+ESB 我试图面对WSO2 ESB 4.7.0和WSO2 MB 2.1.0之间的集成,遵循此URL中的说明: http//docs.wso2.org/display/MB210/Integrating+WSO2+ESB

In particular i want to use a message store as a queue. 特别是我想使用消息存储作为队列。 So i follow the paragraph: "Integrate Using Message Stores and Processors". 所以我按照段落:“使用消息存储和处理器集成”。

I created the message store and message processor, having previously well configured ESB and MB as showed. 我创建了消息存储和消息处理器,之前已经配置好了ESB和MB。 Finally i wrote this proxy: 最后我写了这个代理:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="MessageStoreQueueProxy"
   transports="https,http"
   statistics="disable"
   trace="disable"
   startOnLoad="true">
<target>
  <inSequence>
     <send>
        <endpoint>
           <address uri="http://localhost:8080/RestService/rest/servizio"/>
        </endpoint>
     </send>
  </inSequence>
  <outSequence>
    <send/>
    <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
    <property name="OUT_ONLY" value="true"/>
    <store messageStore="JMSMS"/>
    <log level="full"/>                    
  </outSequence>
</target>
<description/>
</proxy>

When my client calls the MessageStoreQueueProxy service, on the Message Broker i can see the "JMSMS message store" counter rightly increased but, when i take a look on the "Content Type" field of each message i see just the "Java MessageObject icon", while, in the "body field", i can read just a "not supported" value. 当我的客户端调用MessageStoreQueueProxy服务时,在Message Broker上我可以看到“JMSMS消息存储”计数器正确增加,但是,当我查看每条消息的“内容类型”字段时,我只看到“Java MessageObject icon”而在“身体领域”,我只能阅读“不支持”的价值。

On the other hand, if i browse the JMSMS "message store" in the ESB i can see that the messages' envelopes look like this: 另一方面,如果我浏览ESB中的JMSMS“消息存储”,我可以看到消息的信封如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
     <root>
        <code>ok</code>
        <documentID>2546</documentID>
     </root>
  </soapenv:Body>
</soapenv:Envelope>

So why the body was lost during the transaction? 那么为什么在交易过程中尸体丢失了? how can i mantain the body? 我怎么能保持身体? or how can i recover it from the ObjectMessage in the WSO2 MB? 或者如何从WSO2 MB中的ObjectMessage中恢复它?

thanks a lot 非常感谢

"Message Store" does not persist the message as it is in the JMS Queue. “消息存储”不会保留消息,因为它在JMS队列中。 it serializes the message and other information into java serialized object and put it into JMS Queue.When "Message Processor" processes the message, it pulls Messages from JMS Queue and deserializes the java serialized object to further process. 它将消息和其他信息序列化为java序列化对象并将其放入JMS队列。当“消息处理器”处理消息时,它从JMS队列中提取消息并反序列化java序列化对象以进一步处理。

Here MB is used as JMS Queue. 这里MB用作JMS队列。 So Message Store serialize and put in MB queue. 所以Message Store序列化并放入MB队列。 So you see serialize java object. 所以你看到序列化java对象。 If you use message store you won't be able see the content in MB. 如果使用邮件存储,则无法以MB为单位查看内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM