WSO2 ESB API将空载荷发送到端点

时间:2017-01-12 14:33:19

标签: wso2esb

我基本上是在esb api中进行两次POST调用。第一个调用是内容类型为文本。下一次调用的内容类型为application / json。在这两种情况下,我使用有效负载中介构建有效负载。成功执行第一次呼叫后,第二次呼叫失败。我看到在进行第二次调用时请求有效负载是空的。虽然我能够打印消息上下文的json有效负载,但我启用了有线日志并看到请求体是空的,同时进行第二次调用。如果我在这里做错了,请告诉我。

以下是代码 第一个电话是   <payloadFactory media-type="xml"> <format> <text xmlns="http://ws.apache.org/commons/ns/payload">userName=$1&amp;password=$2&amp; domain=$3&amp;captcha=$4 </text> </format> <args> <arg evaluator="xml" expression="get-property('uri.var.swmUser')" xmlns:ns="http://org.apache.synapse/xsd"/> <arg evaluator="xml" expression="get-property('uri.var.swmPassword1')" xmlns:ns="http://org.apache.synapse/xsd"/> <arg evaluator="xml" expression="get-property('uri.var.domain')" xmlns:ns="http://org.apache.synapse/xsd"/> <arg evaluator="xml"expression="get-property('uri.var.captcha')" xmlns:ns="http://org.apache.synapse/xsd"/> </args> </payloadFactory> <property name="ContentType" scope="axis2" value="text/plain"/> <property name="messageType" scope="axis2" value="text/plain"/> <header name="Accept" scope="transport" value="application/json"/> <log level="full"> <property expression="json-eval($.)" name="requestpayload" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <call> <endpoint key="swmLoginEP"/> </call> <property expression="//jsonObject//sessionId//text()" name="sessionId" xmlns:ns="http://org.apache.synapse/xsd"/> <log level="full"> <property expression="get-property('sessionId')" name="sessionId" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <property name="ContentType" scope="axis2" type="STRING" value="application/json"/> <property name="messageType" scope="axis2" type="STRING" value="application/json"/> <property expression="get-property('uri.var.key')" name="attribute" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/> <payloadFactory media-type="json"> <format>{"attributeNames": ["vehicleModelYear"]} </format> <args> <arg evaluator="xml" expression="get-property('attribute')" xmlns:ns="http://org.apache.synapse/xsd"/> </args> </payloadFactory> <property name="ContentType" scope="axis2" type="STRING" value="application/json"/> <property name="messageType" scope="axis2" type="STRING" value="application/json"/> <header name="Accept" scope="transport" value="application/json"/> <header expression="get-property('sessionId')" name="sessionId" scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/> <log level="full"> <property expression="json-eval($.)" name="request payload of get values" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <log> <property expression="$body" name="PAYLOAD" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <call> <endpoint key="swmAttributeValuesEP"/> </call>

第二个调用是向端点发送空请求有效负载

谢谢, 阿齐姆

1 个答案:

答案 0 :(得分:0)

可能是查询是通过GET完成而不是POST(可以解释空体)。 您是否尝试明确确定要使用此类帖子,例如

<property description="Force Post" name="HTTP_METHOD" scope="axis2"
  type="STRING" value="POST"/>