Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Как правильно сделать редирект


Автор: vzf 19.7.2007, 14:38
Здравствуйте. Проблема состоит в следующем. Есть приложение использующее Facelets. В экшене у меня идет предварительные действия, кладутся атрибуты в сессию, а затем мне необходимо сделать  редирект на сервлет. На моей машине все работает как надо. Но когда установили на сервер, обнаружилась такая проблема. После редиректа меняется имя хоста, т.е. я у меня приложение имеет такой адрес  
Код

http://host016/emnew/


редирект должен перенаправить меня с страницы 
Код

http://host016/emnew/references/HelpPage.jsf
 
на сервлет Export2File т.е. на такой вот адрес

Код

http://host016/emnew/export2File
 
но вместо этого я попадаю на адрес


Код

http://host016.petersburg.mycompany.com/emnew/export2File 

из-за этого теряется http-сессия и возникает ошибка.

Редирект из экшена бина я делаю так:

Код

(HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse().sendRedirect(getResponse().encodeRedirectURL(getRequest().getContextPath() + 
                                                                       "/export2File"));


В чем здесь может быть ошибка?

Автор: necromancer 19.7.2007, 18:26
наверное вот в этом: getRequest().getContextPath()
Я точно не помню, но я бы смотрел в сторону ServletContext и его методов
Если это не помогает то не ищем "умных путей" и просто хардкодим пусть или же пытаемся указать относительный путь, что то вроде
"/export2File", по идее это должно помочь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)