Когда я включаю кеширование для API и пытаюсь его использовать, я получаю ошибку кода ответа 500 с описанием - «Ошибка при построении сообщения». Ответ работает отлично, когда кеширование отключено. Есть идеи?Диспетчер API WSO2 потребляет ошибку при включенном кешировании
0
A
ответ
0
Эта ошибка может возникнуть, если вы передаете пустое значение в тело запроса для запроса POST. Поскольку построитель JSON по умолчанию пытается конвертировать JSON в XML, и вы можете увидеть эту ошибку при преобразовании пустого сообщения.
Если вы отправляете пустое тело для запроса по почте, измените конструктор и форматировщик на JsonStreamBuilder и JsonStreamFormatter, выполнив следующие шаги.
1) Откройте файл axis2.xml, который находится в папке (APIM_HOME)/репозиторий/conf/axis2, и прокомментируйте построитель и форматировщик JSON по умолчанию.
<!--messageBuilder contentType="application/json"
class="org.apache.synapse.commons.json.JsonBuilder"/-->
<!--messageFormatter contentType="application/json"
class="org.apache.synapse.commons.json.JsonFormatter"/-->
2) Не комментируйте JsonStreamBuilder и JsonStreamFormatter.
<messageBuilder contentType="application/json"
class="org.apache.synapse.commons.json.JsonStreamBuilder"/>
<messageFormatter contentType="application/json"
class="org.apache.synapse.commons.json.JsonStreamFormatter"/>
Что такое версия APIM, которую вы используете? а также обновить вопрос с полным журналом ошибок, который вы получаете –
Я использую AM версию 1.9.0 –
В файле журнала я получил 4 ошибки - вот первые: 2016-05-11 05: 44: 32,882 # ToXml. Не удалось преобразовать поток JSON в XML. Невозможно обработать вход JSON. Ошибка >>> java.io.IOException: Неожиданный символ: END_OBJECT Подробнее TID [-1234] [AM] [2016-05-11 05: 44: 32,882] ОШИБКА {org.apache.synapse.commons.json.JsonUtil} - #toXml. Не удалось преобразовать поток JSON в XML. Невозможно обработать вход JSON. Ошибка >>> java.io.IOException: Неожиданный символ: END_OBJECT –