0

我试图正视 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 中恢复它?

多谢

4

1 回答 1

2

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

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

于 2013-10-28T04:57:45.307 回答