2012-05-23 4 views
1

В настоящее время я работаю над Rest-Service, которому необходимо вызвать другой метод Rest-Method, предоставленный на том же сервере. Например, метод на пути/myPath/foo должен запросить что-то из метода на пути/myPath/restApi/barSpring RestTemplate postForObject call in Rest service

Как это сделать с Spring RestTemplate (или что-то еще) без использования полного пути в метод RestTemplate.postForObject (...) (полный путь не может быть использован, поскольку URL-адрес и порт артефакта неизвестны при создании артефакта).

Благодарим за помощь! С наилучшими пожеланиями, Энди

ответ

1

Прежде всего, почему вы доступ к методу покоятся на том же сервере (похоже, это одно и то же приложение), используя URL вместо вызова метода службы за что второй URL напрямую? Если это тот же контейнер сервлета, но несколько файлов WAR, чем штраф.

На ваш вопрос: у вас do есть хост и порт. Вы говорите, что когда клиент пытается получить доступ к /myPath/foo, сервер должен получить доступ к /myPath/restApi/bar. Когда вы находитесь в методе контроллера/действия/обработчика/независимо от того, какая ваша инфраструктура REST обеспечивает получение HttpServletRequest как-то. Имея объект запроса, вы можете узнать, какой хост и порт вашего клиента использовали для подключения к вашему первому веб-сервису. Вы можете использовать эту информацию для вызова второй веб-службы на том же сервере.

Вторая мысль: если это тот же сервер, не можете ли вы просто использовать localhost?

+0

спасибо. Действительно, я смог получить HttpServletRequest и обрабатывать его таким образом. – andy

Смежные вопросы