为什么响应在wso2中很奇怪

时间:2015-10-26 05:54:12

标签: wso2 wso2esb

我用邮递员来测试 http://192.168.1.208:8090/jobsappName=sparkJoin001&classPath=com.mymoon.sql.SparkJoin 没关系!它返回消息:

{
  "status": "STARTED",
  "result": {
    "jobId": "3a47f931-f040-4e4a-a688-331f1918ae82",
    "context": "6a171d9d-com.mymoon.sql.SparkJoin"
  }
}
  

它的http状态是202!

我在wso2 esb中配置并返回一些消息,但浏览显示混合消息!它的诅咒!

配置为:

<api xmlns="http://ws.apache.org/ns/synapse" name="d" context="/dd">
   <resource methods="GET" uri-template="/submit">
      <inSequence>
         <log level="full"/>
         <payloadFactory media-type="text">
            <format>{"uuid":"201456541","table": "aa/aa_table","condition":"names|91194185"}</format>
            <args/>
         </payloadFactory>
         <send>
            <endpoint>
               <http method="POST" uri-template="http://192.168.1.208:8090/jobs?appName=CU&amp;classPath=com.mymoon.ses.SparkCount"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <log level="full">
            <property name="asdfsadf" expression="json-eval($.)"/>
         </log>
         <payloadFactory media-type="text">
            <format>{"jobId":"$1", "table":"$2"}</format>
            <args>
               <arg evaluator="json" expression="$.result.jobId"/>
               <arg value="test"/>
            </args>
         </payloadFactory>
         <send/>
      </outSequence>
   </resource>
</api>

所以我测试http://192.168.1.101:8280/dd/submit。浏览器显示此类消息。

{
  "status": "STARTED",
  "result": {
    "jobId": "548e9590-e442-439f-9234-223bf5bf669e",
    "context": "dd803c98-com.mymoon.ses.SparkCount"
  }
}{"jobId":"548e9590-e442-439f-9234-223bf5bf669e", "table":"test"}

我希望消息是这样的:

{"jobId":"548e9590-e442-439f-9234-223bf5bf669e", "table":"test"} 

所以我很困惑!帮帮我!谢谢!

1 个答案:

答案 0 :(得分:0)

我已经使用ESB 4.8.0进行了测试。我修改了您的API代码,如下所示。我测试了模拟服务及其工作。只有改变我做的是从文本

更改media-type json
<api xmlns="http://ws.apache.org/ns/synapse" name="d" context="/dd">
   <resource methods="GET" uri-template="/submit">
      <inSequence>
         <log level="full"></log>
         <payloadFactory media-type="json">
            <format>{"uuid":"201456541",   "table": "aa/aa_table",   "condition":"names|91194185"   }</format>
            <args></args>
         </payloadFactory>
         <send>
            <endpoint>
               <http method="post" uri-template="http://demo2965385.mockable.io/test"></http>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <log level="full">
            <property name="asdfsadf" expression="json-eval($.)"></property>
         </log>
         <payloadFactory media-type="json">
            <format>{"jobId":"$1", "table":"$2"}</format>
            <args>
               <arg evaluator="json" expression="$.result.jobId"></arg>
               <arg value="test"></arg>
            </args>
         </payloadFactory>
         <send></send>
      </outSequence>
   </resource>
</api>

响应如下

{
  "jobId": "3a47f931-f040-4e4a-a688-331f1918ae82",
  "table": "test"
}