Ошибка создания JSON PayLoad с встроенным форматом PayLoadFactory - PullRequest
1 голос
/ 13 января 2020

Я использую WSO2 API Manager 3.1.0 и мне нужно получить доступ к конечному ответу REST в последовательности IN одного API.

Я пытаюсь создать полезную нагрузку JSON с посредником PayloadFactory во встроенном формате .

<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 IN в, я получаю следующую ошибку:

[2020-01-13 17:21: 26,422] ПРЕДУПРЕЖДЕНИЕ - SynapseXMLConfigurationFactory Конфигурация последовательности: admin - NMGI: v1.0.0 - Вход не может быть построен - Продолжить в отказоустойчивом режиме com.jayway.jsonpath.InvalidPathException: недопустимый символ в позиции 1, ожидается «.» или '[at com.jayway.jsonpath.internal.path.PathCompiler.fail (PathCompiler. java: 616) ~ [json -path_2.4.0.wso2v2.jar :?] на com.jayway.jsonpath.internal .path.PathCompiler.readContextToken (PathCompiler. java: 120) ~ [json -path_2.4.0.wso2v2.jar :?] в com.jayway.jsonpath.internal.path.PathCompiler.compile (PathCompiler. java: 58) ~ [json -path_2.4.0.wso2v2.jar :?] at com.jayway.jsonpath.internal.path.PathCompiler.compile (PathCompiler. java: 75) ~ [json -path_2 .4.0.wso2v2.jar :?] в com.jayway.jsonpath.JsonPath. (JsonPath. java: 101) ~ [json -path_2.4.0.wso2v2.jar :?] в com.jayway.jsonpath. JsonPath.compile (JsonPath. java: 467) ~ [json -path_2.4.0.wso2v2.jar :?] at org. apache .synapse.util.xpath.SynapseJsonPath. (SynapseJsonPath. java: 102) ~ [synapse-core_2.1.7.wso2v137.jar: 2.1.7-wso2v137]

Я пробовал разные форматы JSON с одинаковым результатом.

¿Как правильно указать JSON в?

1 Ответ

0 голосов
/ 14 января 2020

Если evaluator=json, то expression должен быть json путем. Но в вашем случае это не требуется, поскольку вы читаете параметр запроса и заголовок HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...