RestTemplate не содержит атрибуты запроса - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть 2 услуги, например, Parent и Child.В родительской службе

request.setAttribute("key","someValue");

из родительской службы вызвали одну из конечных точек дочерней службы.

restTemplate.exchange(url, HttpMethod.GET, null, Object.class);

в дочернем RestController, я ожидаю, что атрибуты установлены (ключ) вРодитель.

request.getAttribute("key") --> returns null

Но я получаю нулевое значение, подскажите, пожалуйста, что я делаю не так.Я ожидал, что тот же объект запроса Parent будет передан Child.Но мое понимание кажется неправильным.Пожалуйста, поправьте меня.

спасибо.

1 Ответ

1 голос
/ 29 апреля 2019

Я не уверен, что вы пытаетесь выполнить, но, похоже, вы пытаетесь установить атрибут в вашем HttpServletRequest и ожидаете получить этот атрибут обратно в вашей конечной точке.

Объект request создается веб-контейнером, но он не 'переносится' в конечную точку Child, как я полагаю, вы думаете, что это так. Этот объект существует только в конечной точке, которая обрабатывает запрос, пока ответ не будет отправлен обратно.

Если вам нужно передать параметр в конечную точку Child, вам нужно добавить его в URL как параметр запроса, например:

url += "?key=someValue"

или, если это более сложный объект, вы должны использовать другой метод HTTP, отличный от GET , и добавить его в качестве тела вашего запроса. Затем вы должны получить параметр в конечной точке Child.

Вы можете проверить несколько примеров здесь:

https://springbootdev.com/2017/11/21/spring-resttemplate-exchange-method/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...