ESB не возвращает ничего из сервиса GET, который не работает с NPE
Я настроил прокси-сервис для запуска некоторых вещей проверки XSBRL, которые принимают запрос get и возвращают результаты проверки XML. Вот конфигурация службы прокси:
<proxy xmlns="http://ws.apache.org/ns/synapse" name="XBRLValidationRESTService" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
<target>
<inSequence>
<log level="full"/>
<property name="REST_URL_POSTFIX" value="/example.xbrl/validation/xbrl?media=xml" scope="axis2"/>
<property name="HTTP_METHOD" value="GET" scope="axis2"/>
<send>
<endpoint>
<address uri="http://localhost:10000/rest/xbrl" format="pox"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level="full"/>
<send/>
</outSequence>
</target>
<description></description>
</proxy>
В файле журнала я вижу, что базовая служба отвечает ожидаемым ответом, однако клиент ничего не получает обратно, потому что ESB по какой-то причине дает сбой с NPE.
Запрос используется от localhost:
curl -k https://localhost:9443/services/XBRLValidationRESTService
Полный журнал: http://pastebin.com/A5jB9wMF
Какова потенциальная причина этого и как это можно исправить.
Спасибо, Владимир.
1 ответ
Решение
Вы запускаете ESB с блокировкой транспорта? По умолчанию esb использует транспорт NIO, а порт - 8280. Ваш URL прокси-службы будет;
http://localhost:8280/services/XBRLValidationRESTService
Вместо того, чтобы помещать журнал в полное состояние, используйте описательные журналы для определения путей сообщения,