将 URL 重定向到 Tomcat 中的不同 Web 应用程序

将 URL 重定向到 Tomcat 中的不同 Web 应用程序

我正在运行 tomcat 6.0,但在配置它以执行我想要的操作时遇到了问题......

我有两个 Web 应用,分别称为 X 和 Y,部署为 X.war 和 Y.war。每个应用都有一个名为 blah 的 servlet。

所以我可以像这样访问它们: http://服务器/X/blah http://服务器/Y/blah

我想要做的是假装它们是一个 Web 应用程序 Z,并且能够执行以下操作:

http://服务器/Z/X/blah --> 就像我去过http://服务器/X/blah

http://服务器/Z/Y/blah --> 就像我去过http://服务器/Y/blah

因此我将 (catalina_home)/conf/Catalina/localhost/X.xml 更改为如下形式: < context override="true" path="/Z/X" reloadable="false" >

然而,这并没有奏效;当去http://服务器/Z/X/blah我收到“请求的资源 (/Z/X/blah) 不可用。”

我哪里做错了?

答案1

另一种方法是通过 ajp 在 apache 后面设置 tomcat。然后,使用 mod_proxy_ajp 映射http://服务器/Z/改为 ajp://server/。

答案2

如果您添加Context内部内容server.xml,它就会按您希望的方式工作。

<Context docBase="x" path="/z/x" reloadable="true"  />

Tomcat 文档不推荐这种方法,因为任何更改都server.xml意味着重新启动服务器,从而扰乱所有 Web 应用程序。

但是,另一方面,Catalina_Home/conf/Catalina/localhost/context.xml正如其他人所报告的那样,按照自己的意愿保留这种做法存在一些不可靠性。

https://stackoverflow.com/questions/4032773/why-does-tomcat-replace-context-xml-on-redeploy

为什么 tomcat 喜欢删除我的 context.xml 文件?

相关内容