0

我正在尝试使用 wso2esb 4.7.0 REST API 来实现以下用例:

公开一个 REST 资源,当您执行 GET 请求时,它会构建 JSON 消息并向后端服务发出 POST 请求,并接收将返回给客户端的 JSON 响应。

我在构建 JSON 消息时遇到问题。我正在使用payloadfactory 调解器来构建我的JSON 请求,但我的后端服务上只收到一条空的soap 消息。

这是我正在使用的 REST API 源配置:

<api xmlns="http://ws.apache.org/ns/synapse" name="test" context="/test">
 <resource methods="GET" uri-template="/test">
  <inSequence>
     <payloadFactory media-type="json">
        <format>{"request": "Hello JSON!"}</format>
        <args/>
     </payloadFactory>
     <property name="Content-Type" value="application/json" scope="transport" type="STRING"/>
     <send>
        <endpoint name="HTTPEndpoint">
           <http method="POST" uri-template="http://localhost:8080"/>
        </endpoint>
     </send>
     <log level="full"/>
  </inSequence>
  <outSequence>
     <send/>
  </outSequence>
 </resource>
</api>
4

1 回答 1

0

您必须在发送中介之前按如下方式设置“messageType”属性。

    <property name="messageType" value="application/json" scope="axis2"/>

所以你的配置应该改变如下。

<api xmlns="http://ws.apache.org/ns/synapse" name="test" context="/test">
 <resource methods="GET" uri-template="/test">
    <inSequence>
     <payloadFactory media-type="json">
          <format>{"request": "Hello JSON!"}</format>
        <args/>
     </payloadFactory>
     <property name="messageType" value="application/json" scope="axis2"/>
     <send>
      <endpoint name="HTTPEndpoint">
       <http method="POST" uri-template="http://localhost:8080"/>
      </endpoint>
    </send>
   <log level="full"/>
  </inSequence>
  <outSequence>
   <send/>
  </outSequence>
 </resource>
</api>
于 2013-09-14T15:22:10.017 回答