我使用的是WSO2 API管理器3.1.0,并且需要在in序列中访问REST端点。
我正在尝试以内联格式使用PayloadFactory中介创建一个JSON有效负载。
<payloadFactory description="" media-type="json">
<format>
{"result":[{"id":"$1","description":"$2"}]}
</format>
<args>
<arg evaluator="json" expression="get-property('uri.var.assetId')"/>
<arg evaluator="json" expression="$trp:apisegutoken"/>
</args>
</payloadFactory>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<call blocking="true">
<endpoint>
<address uri="http://postman-echo.com/get"/>
</endpoint>
</call>当我将自定义策略按顺序添加到API中时,会收到以下错误:
2020-01-13 17:21:26 422警告- SynapseXMLConfigurationFactory序列配置:admin-NMGI:v1.0.0-不能内置-继续在故障安全模式com.jayway.jsonpath.InvalidPathException:非法字符在位置1预期‘。或者'[在com.jayway.jsonpath.internal.path.PathCompiler.fail(PathCompiler.java:616) ~json_2.4.0.wso2v2.jar:?在com.jayway.jsonpath.internal.path.PathCompiler.readContextToken(PathCompiler.java:120) ~json_2.4.0.wso2v2.jar:?在com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:58) ~json_2.4.0.wso2v2.jar:?在com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:75) ~json_2.4.0.wso2v2.jar:?在com.jayway.jsonpath.JsonPath.(JsonPath.java:101) ~json_2.4.0.wso2v2.jar:?在com.jayway.jsonpath.JsonPath.compile(JsonPath.java:467) ~json_2.4.0.wso2v2.jar:?在org.apache.synapse.util.xpath.SynapseJsonPath.(SynapseJsonPath.java:102) ~synapse-core_2.1.7.wso2v137.jar:2.1.7-wso2v137
我尝试过不同的JSON格式,结果是相同的。
中指定JSON的正确方法是什么?
发布于 2020-01-14 05:45:59
如果是evaluator=json,则expression必须是json路径。但在您的示例中,它并不是必需的,因为您正在读取查询参数和HTTP头。
https://stackoverflow.com/questions/59721234
复制相似问题