【问题标题】:WSO2 ESB and MB Message Store looses Message BodyWSO2 ESB 和 MB 消息存储丢失消息正文
【发布时间】:2013-11-06 08:22:33
【问题描述】:

我正在尝试正视 WSO2 ESB 4.7.0 和 WSO2 MB 2.1.0 之间的集成,遵循此 URL 中的说明: http://docs.wso2.org/display/MB210/Integrating+WSO2+ESB

我特别想将消息存储用作队列。所以我遵循以下段落:“使用消息存储和处理器集成”。

我创建了消息存储和消息处理器,之前已经很好地配置了 ESB 和 MB,如图所示。 最后我写了这个代理:

<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>

当我的客户端调用 MessageStoreQueueProxy 服务时,在 Message Broker 上,我可以看到“JMSMS 消息存储”计数器正确增加,但是,当我查看每条消息的“内容类型”字段时,我只看到“Java MessageObject 图标”,而在“正文字段”中,我只能读取“不支持”的值。

另一方面,如果我浏览 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>

那么为什么在交易过程中遗体丢失了?我怎样才能维持身体?或者我如何从 WSO2 MB 中的 ObjectMessage 中恢复它?

非常感谢

【问题讨论】:

    标签: wso2 message wso2esb messagebroker wso2mb


    【解决方案1】:

    “消息存储”不会像在 JMS 队列中那样持久化消息。它将消息和其他信息序列化为java序列化对象并将其放入JMS Queue。当“消息处理器”处理消息时,它会从JMS Queue中提取消息并将java序列化对象反序列化以进一步处理。

    这里MB用作JMS Queue。所以消息存储序列化并放入 MB 队列。所以你会看到序列化 java 对象。如果您使用消息存储,您将无法看到以 MB 为单位的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2021-06-01
      • 2017-01-11
      相关资源
      最近更新 更多