我怎样才能将 XML 模拟有效载荷放入 WSO2 ESB 发送中介发送的 POST 请求有效载荷中?

How can I put an XML mocked payload into a POST request payload sended by a WSO2 ESB send mediator?

我绝对是 WSO2 ESB 的新手,此时我必须完成第一个简单的任务,但我真的不知道从哪里开始。

我必须对外部 Web 服务执行 HTTP POST 请求。这个请求应该包含一个模拟的 XML 文档作为有效载荷(此时 XML 必须只是模拟所以我认为我必须 "write" 它在某个地方或类似的东西)。

所以从这个简约的官方教程开始:

https://docs.wso2.com/display/ESB500/Sending+a+Simple+Message

我做了以下操作:

1) 我创建了一个新的 ESB 解决方案项目

2) 在名为SampleServices的"main"项目上(此时我使用的教程同名)我已经注​​册了 endpoint 到我的外部网络服务(New -> Endpoint)。

3) 然后在这个项目上我添加了一个新的 RESP API (New -> REST API).与教程不同,我在 API 资源属性中启用 POST 请求而不是 GET 因为我需要发送包含负载的 POST 请求而不是教程 GET 请求。这是我的设置:

4) 然后,按照教程中的做法,我设置了 发送调解器 并在该调解器上设置了 定义的端点 指向必须处理 POST 请求并检索其负载的我的外部 Web 服务。

好的,现在我的问题是:如何将模拟的 XML 文档放入我的 *send 发送的 POST 请求的正文中调解员**?

正在阅读第二个教程: https://docs.wso2.com/display/ESB500/Routing+Requests+Based+on+Message+Content

我知道我可以从外部传递请求负载,例如在第二个教程中执行此 CURL 调用以启动 ESB "process":

curl -v -X POST --data @request.json http://localhost:8280/healthcare/categories/surgery/reserve --header "Content-Type:application/json"

这会调用一个 JSON 作为负载。在前面的示例中工作正常,但对我来说并不好。

我必须在我的 ESB API 流程中模拟 XML 文档负载,而不是从由 CURL 执行的外部请求,因为在第二个实现步骤中它不会被模拟,但 il 将来自链中的前一步。

所以我需要这样的流程:

当我的 API 被调用时,它执行一个 POST 请求,发送一个模拟的 XML有效负载。也许它必须被放入 send mediator 但我不知道...

如何将此 XML 放入由 send mediator 发送的请求的负载中?我去哪里define\write呢?

检查此示例:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/services/users" name="ListUsersAPI" xmlns="http://ws.apache.org/ns/synapse">
  <resource methods="GET" protocol="http" url-mapping="/*">
    <inSequence>
      <payloadFactory media-type="json">
        <format>{ "persons":[{ "person": { "Id":"1", "givenName":"ajith", "lastName":"vitharana", "age":"25", "contactInfos":[ { "InfoId":"1", "department":"1", "contactType":"email", "value":"ajith@abc.org" }, { "InfoId":"2", "department":"1", "contactType":"mobile",
          "value":"111111111" }, { "InfoId":"3", "department":"1", "contactType":"home", "value":"Magic Dr,USA" } ] }}, {"person":{ "Id":"2", "givenName":"shammi", "lastName":"jagasingha", "age":"30", "contactInfos":[ { "InfoId":"1", "department":"1", "contactType":"email",
          "value":"shammi@abc.org" }, { "InfoId":"2", "department":"1", "contactType":"mobile", "value":"2222222222" }, { "InfoId":"3", "department":"1", "contactType":"home", "value":"Magic Dr,USA" } ] } }] }</format>
        <args/>
      </payloadFactory>
      <property action="remove" name="NO_ENTITY_BODY" scope="axis2"/>
      <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
      <respond/>
    </inSequence>
    <outSequence/>
    <faultSequence/>
  </resource>
</api>