RequestDispatcher для передачи запроса в другое веб-приложение на том же сервере - PullRequest
0 голосов
/ 17 марта 2012

Можно ли отправить запрос http post назад диспетчером запросов сервлету в другом проекте.Я пытался, но

данный URL проверяется в том же проекте и выдает ошибку 404 ...

HTTP Status 404 - /FilterI/http:/IP:8080/FilterII/RequestServlet

type Status report

message /FilterI/http:/IP:8080/FilterII/RequestServlet

description The requested resource (/FilterI/http:/10.49.11.197:8080/FilterII/RequestServlet) is not available.

Обе войны развернуты на одном сервере. Я могу добиться того жеиспользуя функцию .sendRedirect (). Однако почему она не работает с помощью requestdispatcher.

Ответы [ 2 ]

2 голосов
/ 17 марта 2012

Да, с использованием ServletContext API. Вы можете получить контекст сервлета другого приложения, используя ServletContext.getContext("othercontext"), и получить диспетчер запросов сервлета в этом приложении.

Ниже приведен код, объясняющий, как это сделать:

ServletContext otherCtx  = currentServletContext.getContext("otherContext");
RequestDispatcher dispatcher = otherCtx.getRequestDispatcher("/forwardedPath");
dispatcher.forward(request, response);
1 голос
/ 17 марта 2012

Javadoc говорит:

Указанный путь может быть относительным, хотя он не может расширяться вне текущего контекста сервлета .

(акцент мой)

Итак, то, что вы спрашиваете, невозможно.

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