Пользовательский Uri или конечная точка на WSO2

Мы только что установили наш WSO2 ESB и пытаемся создать несколько прокси-сервисов с пользовательскими конечными точками.

Конечный формат по умолчанию:

  • http://{хост}:{порт}/services/{имя прокси-сервиса}

Я хотел бы иметь что-то вроде:

  • http://{хост}:{порт}/services/utilities/{Имя прокси-сервиса}
  • http://{хост}:{порт}/services/public/{Имя прокси-сервиса}

Я следовал этому руководству:

но у нас есть проблема, когда я отправляю запрос на свою пользовательскую конечную точку, у меня нет ответа.

предложения?


person culebrins    schedule 09.05.2013    source источник


Ответы (2)


Я предполагаю, что вы смогли правильно создать пользовательскую конечную точку, а «У меня нет ответа» означает, что вы не получили никакого ответа. Если это так, то ниже приведены возможные причины этого,

  1. Конечная точка службы прокси не получила запрос
  2. Прокси-служба не настроена должным образом для ответа

Поэтому проверьте, является ли 1 причиной, по которой вы можете просто поместить посредник журнала со следующей конфигурацией в inSequence,

‹уровень журнала="полный"/›

затем, если прокси-сервис получил сообщение, он зарегистрирует его в консоли. Если это работает, не могли бы вы опубликовать конфигурацию своей прокси-службы, чтобы проверить, правильно ли она определена.

person Malith    schedule 10.05.2013
comment
Спасибо, Малит, кажется, это первый вариант, конечная точка прокси-сервиса не получила запрос... Нужно ли мне применять какую-либо новую конфигурацию? - person culebrins; 10.05.2013
comment
Пробовали ли вы отправить запрос через веб-консоль ESB? Попробуйте этот сервисный вариант. Если нет, выполните следующие шаги и проверьте, работает ли он, ПЕРЕЙДИТЕ к веб-консоли ESB› выберите «Список» в меню «Службы» в левой части › В этом списке найдите свой пользовательский прокси с пользовательским URL-адресом › Выберите опцию «Попробовать эту услугу» и отправьте сообщение (просто поместите тело) - person Malith; 12.05.2013
comment
Не повезло. После применения всей конфигурации руководства в файле axis2.xml я могу настроить одну из своих прокси-служб с помощью пользовательского URL-адреса. Я настроил его, добавив параметры -> /CustomURL/Part1/Part2. Если я попробую службу, ответ будет org.apache.axis2.AxisFault: входной поток для входящего сообщения равен нулю. И если я нажму «Использовать конечную точку» на той же странице, я увижу, что конечная точка WS — это мой собственный URL-адрес. Я также проверил, что не вижу WSDL в пользовательском URL-адресе, но вижу WSDL в WSDL по умолчанию... - person culebrins; 14.05.2013
comment
Я понял, что есть проблема с опцией попробовать сервис с пользовательскими URL-адресами. Так что AxisFault допустим. Какой URL-адрес вы использовали при отправке запроса на пользовательскую конечную точку? Я предполагаю, что в этом то и дело, что все пошло не так. Допустим, имя вашего прокси — foo, а ваш собственный URL — /CustomURL/Part1/Part2. вы должны отправить запрос на localhost:8280/CustomURL/Part1/Part2, а не localhost:8280/CustomURL/Part1/Part2/foo. - person Malith; 17.05.2013
comment
В моем случае прокси ничего не регистрировал (причина 2). Так что мне теперь делать? - person Vinícius Fonseca; 17.10.2013
comment
@ ViníciusFonseca ты решил проблему? У меня такая же проблема, как и у вас. Прокси ничего не получает от пользовательского URL - person Reza Ameri; 04.05.2016

Ну, кажется, мы нашли решение, я собираюсь возобновить полное решение.

Как показано в руководстве, для настройки конечной точки прокси-сервиса необходимо добавить следующий обработчик в конфигурацию axis2.xml:

<handler name="CustomURIBasedDispatcher" class="org.apache.synapse.core.axis2.CustomURIBasedDispatcher"/>

Затем вы можете настроить конечную точку в представлении «Дизайн» или в исходном представлении, я выбрал исходное представление, добавив этот параметр:

<parameter name="ServiceURI">/services/intern</parameter>

Пользовательская конечная точка создается автоматически как:

http://{host}:{port}/services/intern.myWebservice

Но я не работал для меня. Если я отправлю запрос на пользовательскую конечную точку, я не получу ответа.

Я решил проблему, добавив в параметр "ServiceURI" имя службы:

<parameter name="ServiceURI">/services/intern/myWebService</parameter>

затем вы должны отправить запрос на следующую конечную точку:

http://{host}:{port}/services/intern/myWebService

Итак, теперь у вас есть настраиваемая конечная точка для каждой прокси-службы.

Спасибо Малит за помощь.

person culebrins    schedule 17.05.2013
comment
Я попробовал ваше решение, но все равно получаю пустую страницу. Я не понял Пользовательская конечная точка создается автоматически как.... Как я могу это проверить? Моя проблема объясняется в stackoverflow.com/questions/19437894/. Спасибо! - person Vinícius Fonseca; 18.10.2013
comment
Привет, несколько лет спустя; У меня проблема с CustomURI stackoverflow.com/questions/32097411/wso2-esb-custom-url - person Marc; 19.08.2015