esb – apache synapse custom mediator

我有一个REST服务,我想通过wso2 ESB使用.该服务返回一个
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之前修改邮件正文吗?

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

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

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

点赞