2010-11-06 102 views
0

将此内容发布到serverfault,但后来认为它更像是一个stackoverflow交易。我正在运行tomcat 6.0,并且无法将其配置为执行我想要的操作...将URL重定向到Tomcat中的其他Web应用程序

我有两个Web应用程序,称它们为X和Y,部署为X.war和Y.war。每个都有一个叫做blah的servlet。

所以,我可以像这样访问他们:http://server/X/blahhttp://server/Y/blah

我想要做的就是假装他们是一个Web应用程序Z,并且能够做到这一点:

http://server/Z/X/blah - >好像我倒是去http://server/X/blah

http://server/Z/Y/blah - >,好像我去http://server/Y/blah

所以我改变了(CATALINA_HOME)/conf/Catalina/localhost/X.xml如下: < context override =“true”path =“/ Z/X”reloadable =“false”>。与Y.xml类似。

然而,这并没有奏效;当去http://server/Z/X/blah我得到

“请求的资源(/ Z/X /等等)不可用。”

+0

在我看到这里之前在SF上发布了一个答案 http://serverfault.com/questions/198776/redirecting-url-to-different-web-app-in-tomcat/199277#199277 – JoseK 2010-11-08 07:59:17

+0

感谢你在那里发布的概念(基本上,把Context放到server.xml中)。我会试验一下,但不利之处让我感到不安。我在server.xml方法和使用代理servlet之间徘徊了(每个评论在下面回答)。 – akaioi 2010-11-09 16:17:05

+0

@ user54373:生产站点的“标准”方法是Apache上的mod_proxy。我已经给了Tomcat解决方法。 – JoseK 2010-11-10 05:51:44

回答

1

我还没有见过用Tomcat完成的。

一个常见的解决方案是使用mod_proxy将Tomcat服务器隐藏在Apache2服务器后面。

+0

同样的解决方案,我在想。 – 2010-11-06 21:21:57

+0

那么,至于...我可以这样做,但我没有非servlet内容;我担心我会通过转发Apache服务器来降低性能。 – akaioi 2010-11-07 22:09:59

+0

我想过的另一件事是制作一个Web应用程序Z,它将servlet映射到/ Z/X和/ Z/Y并使用c = getContext(“/ X”)或“/ Y”,然后rd = c .getRequestDispatcher()和rd.forward()。我们将转发,但在tomcat容器“内部”,没有实际的HTTP请求。 – akaioi 2010-11-07 22:13:13

相关问题