apache synapse自定义调解员

时间:2012-07-20 07:48:40

标签: esb wso2 wso2esb synapse

我想通过wso2 ESB使用REST服务。该服务返回一个JSON对象。但是,我希望在之前修改JSON 进入ESB并进行处理。

我已经设法部署了一个自定义类中介,但我不知道如何用它处理消息体(JSON对象)。这是正确的方法吗?

我的服务配置目前看起来像这样:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="ListRm" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <outSequence>
         <class name="org.mediator.MyMediator" />
         <send />
         <drop />
      </outSequence>
      <endpoint>
         <address uri="http://xx.xx.xxx.xx:8080/alfresco/s/slingshot/datalists/lists/site/rm/documentLibrary" />
      </endpoint>
   </target>
</proxy>

还有其他方法可以在邮件进入ESB之前修改邮件正文吗?

1 个答案:

答案 0 :(得分:2)

在synapse中介引擎级别,您无法访问json消息。在JSON构建器级别,它将json消息转换为xml消息。因此,您需要访问xml元素并在那里进行修改。

messageContext.getEnvelope()getBody()getFirstElement();

你可以得到上面给出的xml元素。