在消息处理器中迭代介体

时间:2014-02-06 07:33:24

标签: wso2esb

我有一个关于在消息处理器序列中应用迭代中介的问题。让我来告诉你更多细节。 首先,我有一条消息存储在消息存储中:

 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soapenv:Body>
         <jsonObject>
            <status>success</status>
            <totalCount>2</totalCount>
            <next></next>
            <profiles>
               <href>1391671019717</href>
               ...
            </profiles>
            <profiles>
              ......
            </profiles>
         </jsonObject>
      </soapenv:Body>
   </soapenv:Envelope>

然后,我创建了一个消息处理器以使用上面的消息存储

<sequence xmlns="http://ws.apache.org/ns/synapse" name="ProfileProcessingSEQ">
    <iterate id="each_profile" preservePayload="true" attachPath="//jsonObject" expression="//jsonObject/profiles">
        <target>
            <sequence>
                <log>
                    <property name="message" expression="//jsonObject/profiles/profiles"/>
                </log>
                <send/>
            </sequence>
        </target>
    </iterate>
</sequence>

在调用消息处理器之后,我看到了错误日志,如下所示:

  

java.util.Stack.peek中的java.util.EmptyStackException(Stack.java:102)   在   org.apache.synapse.continuation.ContinuationStackManager.addReliantContinuationState(ContinuationStackManager.java:103)   在   org.apache.synapse.mediators.eip.splitter.IterateMediator.mediate(IterateMediator.java:144   在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)   在   org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)   在   org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)

有没有人有同样的问题?请给我一些意见

谢谢,

莱昂

1 个答案:

答案 0 :(得分:0)

要解决该问题,我必须在存储到消息存储库之前更改处理,拆分和准备消息的方式,并且它可以成功运行。 有人有另一个想法吗?

此致 利昂