2010-10-11 3 views
2

Mon application Spring MVC s'exécute sur un Tomcat derrière un Apache 2 agissant comme un proxy. J'accède à mon application directement dans Tomcat via une URL comme http://localhost:8080/myapp. J'accède à mon application via proxy avec une URL comme http://localhost/tomcat/myapp.Chemin de contexte d'application Spring MVC

La deuxième URL rend mon application incorrecte, car elle suppose qu'elle se trouve dans le chemin du contexte /myapp, mais via le proxy, elle doit se trouver dans /tomcat/myapp.

Y a-t-il une variable dans l'API Spring ou Servlet, qui contient /tomcat/myapp si j'y accède via le proxy, et /myapp si j'y accède directement?

Thanx

+0

Que voulez-vous dire par erreur? –

+1

Je veux dire quand je redirige vers "/index.jsp", il redirige réellement vers "http: //localhost/myapp/index.jsp" au lieu de "http: //localhost/tomcat/myapp/index.jsp" – artemb

Répondre

2

Je pense que vous devez alors activer le support proxy. Ce lien pourrait vous aider ou donner un petit indice à ce sujet.

+0

Pourquoi quelqu'un -1 cette réponse? C'est correct, bien que le lien devrait évidemment pointer vers http://tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html. – artemb

+0

J'ai trouvé la solution sur la page dans les docs sur le support proxy. Je ne devrais pas proxy de http: // proxy/tc/à http: // tomcat: 8080 /. Au lieu de cela, je devrais proxy de http: // proxy/myapp/à http: // tomcat: 8080/myapp/ – artemb

+0

@artemb: Je suis tellement désolé de fournir le mauvais lien. En fait, j'ai copié quelques liens à ce moment-là, et le lien vers la page de proxy était le dernier, et n'a pas été bien copié. Par conséquent, j'ai fini par coller le mauvais. Mais la bonne chose est, vous l'avez bien compris.Merci, j'ai modifié le post pour inclure le lien correct. –

-1

Je veux dire quand je réoriente à "/index.jsp" il redirige en fait "http: //localhost/myapp/index.jsp" au lieu de « http://localhost/tomcat/myapp/index.jsp »

Redirect à index.jsp au lieu de /index.jsp

Lorsque vous redirigez à /index.jsp cela agit comme une URL absolue et il est redirigé vers myapp/index.jsp. index.jsp est un URL relatif et redirigera vers tomcat/myapp/index.jsp

+1

cas, il a l'intention de rediriger de 'tomcat/myapp/utilisateur/user.html' à' tomcat/myapp/index.html' –

+0

Et FYI, '/ index.html' n'est pas absolue, c'est aussi relatif mais au contexte. –

+0

Merci, Adeel, c'est exactement ce que j'ai l'intention de faire. Spring MVC application est tout au sujet des URLs conviviales comme/user/add, auquel cas je pense qu'il est faux d'utiliser des redirections comme "../../index.jsp" – artemb

0

Juste sommes tombés sur ce poste lors de la recherche pour la configuration de réglage pour tomcat. Il existe un moyen beaucoup plus simple de configurer tomcat pour gérer la situation exacte que vous rencontrez. Voir:

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

configure un simple connecteur pour le proxy dans tomcat, et le servlet/pavane problèmes de chemin de contexte résoudront. -de: De toute évidence, je n'ai pas lu le commentaire # 2 ...