我试图在WSO2中调用两个休息端点。来自第一个端点的响应用于构建json有效负载,以作为发布请求发送到第二个端点。 问题是第二个端点没有看到有效负载,因此错误消息“请求正文中提供的JSON语法无效:com.google.gson.stream.MalformedJsonException:使用JsonReader.setLenient(true)接受显示第1行第54列的格式错误的JSON。
当我启用wirelogs时,我发现post请求被发送到第二个端点但没有有效负载。但令我惊讶的是,当我记录它时,有效载荷不是空的。
如果你能帮帮我,我将不胜感激。
请在下面找到我的模型摘录
<?xml version="1.0" encoding="UTF-8"?>
<api context="/openAccount" name="AccountCreation" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST">
<inSequence>
<log/>
<header name="Authorization" scope="transport" value="Basic bWlmb3M6cGFzc3dvcmQ="/>
<header name="Content-Type" scope="transport" value="text/plain"/>
<header name="Fineract-Platform-TenantId" scope="transport" value="default"/>
<property expression="get-property('SYSTEM_DATE', 'dd MMMM yyyy')" name="todayDate" scope="default" type="STRING"/>
<payloadFactory media-type="json">
<format>
{
"firstname" : "$1",
"lastname" : "$2",
"externalId":"$3",
"dateFormat":"$4",
"locale":"$5",
"officeId":"$6",
"mobileNo":"$7",
"clientTypeId":"$8",
"clientClassificationId":"$9",
"legalFormId":"$10",
"dateOfBirth":"$11",
"genderId":"$12",
"submittedOnDate":"$13",
"active":"true",
"activationDate":"$14"
}
</format>
<args>
<arg evaluator="json" expression="$.firstname"/>
<arg evaluator="json" expression="$.lastname"/>
<arg evaluator="json" expression="$.externalId"/>
<arg evaluator="json" expression="$.dateFormat"/>
<arg evaluator="json" expression="$.locale"/>
<arg evaluator="json" expression="$.officeId"/>
<arg evaluator="json" expression="$.motherMaidenName"/>
<arg evaluator="json" expression="$.accountPurpose"/>
<arg evaluator="json" expression="$.maritalStatus"/>
<arg evaluator="json" expression="$.legalFormId"/>
<arg evaluator="json" expression="$.dateOfBirth"/>
<arg evaluator="json" expression="$.genderId"/>
<arg evaluator="json" expression="$.submittedOnDate"/>
<arg evaluator="xml" expression="get-property('todayDate')"/>
</args>
</payloadFactory>
<property name="STATE" scope="default" type="STRING" value="CUSTOMER_CREATION"/>
<property name="FORCE_HTTP_1.0" scope="axis2" type="STRING" value="true"/>
<property name="DISABLE_CHUNKING" scope="axis2" type="STRING" value="true"/>
<log>
<property expression="json-eval($.)" name="customer-payload"/>
</log>
<send>
<endpoint key="client-create-endpoint"/>
</send>
</inSequence>
<outSequence>
<switch source="get-property('STATE')">
<case regex="CUSTOMER_CREATION">
<log>
<property expression="json-eval($.)" name="customer-response-payload"/>
</log>
<header name="Authorization" scope="transport" value="Basic bWlmb3M6cGFzc3dvcmQ="/>
<header name="Content-Type" scope="transport" value="text/plain"/>
<header name="Fineract-Platform-TenantId" scope="transport" value="default"/>
<payloadFactory media-type="json">
<format>{"productId":"1","locale":"en","dateFormat":"dd MMMM yyyy","clientId":"$1"}
</format>
<args>
<arg evaluator="json" expression="$.clientId"/>
</args>
</payloadFactory>
<log level="full">
<property expression="json-eval($.)" name="savingsaccount-request-payload"/>
</log>
<property name="STATE" scope="default" type="STRING" value="ACCOUNT_CREATION"/>
<property name="FORCE_HTTP_1.0" scope="axis2" type="STRING" value="true"/>
<property name="DISABLE_CHUNKING" scope="axis2" type="STRING" value="true"/>
<send>
<endpoint key="account-create-endpoint"/>
</send>
</case>
<case regex="ACCOUNT_CREATION">
<log level="full">
<property expression="json-eval($.)" name="savingsaccount-response-payload"/>
</log>
<send/>
</case>
<default/>
</switch>
</outSequence>
<faultSequence/>
</resource>
</api>