Путь контекста приложения Spring MVC

Мое приложение Spring MVC работает на Tomcat за Apache 2, выступающим в качестве прокси. Я получаю доступ к своему приложению непосредственно в tomcat через URL-адрес, например http://localhost:8080/myapp. Я получаю доступ к своему приложению через прокси-сервер с URL-адресом типа http://localhost/tomcat/myapp.

Второй URL-адрес заставляет мое приложение вести себя неправильно, поскольку предполагается, что оно находится в контекстном пути /myapp, но через прокси-сервер оно должно находиться в /tomcat/myapp.

Есть ли переменная в Spring или Servlet API, которая содержит /tomcat/myapp, если я обращаюсь к ней через прокси-сервер, и /myapp, если я обращаюсь к ней напрямую?

спасибо


person artemb    schedule 11.10.2010    source источник
comment
Что вы имеете в виду под неправильно?   -  person Adeel Ansari    schedule 11.10.2010
comment
Я имею в виду, что когда я перенаправляюсь на /index.jsp, он на самом деле перенаправляет на localhost/myapp/index.jsp. из localhost/tomcat/myapp/index.jsp   -  person artemb    schedule 11.10.2010


Ответы (3)


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

person Adeel Ansari    schedule 11.10.2010
comment
Почему кто-то ответил -1? Это правильно, хотя ссылка должна явно указывать на tomcat.apache.org /tomcat-6.0-doc/proxy-howto.html. - person artemb; 11.10.2010
comment
Я нашел решение на странице в документах о поддержке прокси. Я не должен использовать прокси с proxy/tc на кот:8080. Вместо этого я должен использовать прокси с proxy/myapp на tomcat:8080/myapp - person artemb; 11.10.2010
comment
@artemb: Мне очень жаль, что я дал неправильную ссылку. На самом деле, тогда я скопировал несколько ссылок, а ссылка на прокси-страницу была последней и плохо копировалась. Поэтому я вставил неправильный. Но хорошо, что ты все правильно понял. Спасибо, я изменил сообщение, чтобы включить правильную ссылку. - person Adeel Ansari; 12.10.2010

Просто наткнулся на этот пост при поиске настройки конфигурации для tomcat. Существует гораздо более простой способ настроить tomcat для обработки конкретной ситуации, с которой вы столкнулись. Видеть:

http://tomcat.apache.org/tomcat-5.5-doc/proxy-howto.html

Просто настройте коннектор для прокси-сервера в tomcat, и проблемы с путями контекста servlet/struts будут решены.

-edit: Очевидно, я не читал комментарий №2...

person Jesse    schedule 18.02.2011

Я имею в виду, что когда я перенаправляюсь на «/index.jsp», он фактически перенаправляет на «http://localhost/myapp/index.jsp» вместо «http://localhost/tomcat/myapp/index.jsp».

Перенаправить на index.jsp вместо /index.jsp

Когда вы перенаправляете на /index.jsp, он действует как абсолютный URL-адрес и перенаправляется на myapp/index.jsp. index.jsp является относительным URL и будет перенаправлять на tomcat/myapp/index.jsp

person Faisal Feroz    schedule 11.10.2010
comment
Что делать, если он собирается перенаправить с tomcat/myapp/user/user.html на tomcat/myapp/index.html - person Adeel Ansari; 11.10.2010
comment
И к вашему сведению, /index.html не является абсолютным, оно также относительно, но зависит от контекста. - person Adeel Ansari; 11.10.2010
comment
Спасибо, Адил, именно это я и собираюсь сделать. Приложение Spring MVC - это удобные для пользователя URL-адреса, такие как /user/add, и в этом случае я думаю, что неправильно использовать перенаправления, такие как ../../index.jsp - person artemb; 11.10.2010