Неверный запрос диспетчера API WS02 к URL-адресу конечной точки

У нас есть наш API, управляемый диспетчером API WS02, но, похоже, есть некоторая проблема с тем, как он создает исходящий запрос в настроенный URL-адрес конечной точки. Мы видим такую ​​​​ошибку с нашей конечной точки, когда делаем запрос к менеджеру API:

Cannot bind to address "http://<HOST>:<PORT>http://<HOST>:<PORT>/<RESOURCE>

URL-адрес явно неверен, так как он дважды добавляет хост-часть URL-адреса. Мы поместили прокси-сервер отладки между диспетчером API и нашей конечной точкой, и он показывает, что исходящий запрос выглядит следующим образом:

GET http://<HOST>:<PORT>/<RESOURCE> HTTP/1.1
...
Host: <HOST>:<PORT>

Хост не может быть включен в первую строку; это должно исходить из заголовка «Host». Но как бы то ни было, имеет смысл, что мы получаем вышеуказанную ошибку. Обратите внимание: когда мы проксируем это через что-то вроде Nginx, все работает нормально, но серверу, который мы на самом деле используем для нашей конечной точки, это не нравится. Я предполагаю, что Nginx был написан таким образом, чтобы он мог разрешать этот тип (технически неверный) запрос.


person jpendle    schedule 17.03.2014    source источник


Ответы (1)


Мы добавляем правильный «POST_TO_URI» в нашу конфигурацию API синапса, чтобы сделать исходящий URL-адрес полным URL-адресом [1]. Это полезно при отправке сообщений через прокси-сервер. Вы можете удалить это свойство, изменив свой API в каталоге AM_HOME/repository/deployment/server/synapse-configs/default/api/. Удалите указанное ниже свойство в соответствующих API, которые отправляют запросы на такие внутренние серверы.

<property name="POST_TO_URI" value="true" scope="axis2"/>

[1]https://docs.wso2.org/display/ESB460/HTTP+Transport+Properties

person Lakmali Erandi Baminiwatta    schedule 18.03.2014
comment
Спасибо за быстрый ответ. Просто добавить удаление свойства полностью не сработало, но установка его на false сработала :) - person jpendle; 18.03.2014