我正在开发一个Web应用程序,它由两个独立的部分组成 - 身份验证和真实应用程序部分。这两个部分都是WAR
,它们部署在(当前)一个Tomcat 7实例上。
所以,我的WAR
文件夹中有以下两个webapps
:
webapps
|
+- BloggofantAuthentication
|
+- Bloggofant
直到现在,http://127.0.0.1:8080/BloggofanAuthentication
和http://127.0.0.1:8080/Bloggofant
都可以使用它们。是否可以代理直接在Tomcat上WAR
(这样我就不必使用Apache httpd
及其mod_proxy
模块了?因此,最终,服务器上的WAR
可以按如下方式访问:
http://127.0.0.1:8080/BloggofantAuthentication
- >
http://127.0.0.1/bloggo/
http://127.0.0.1:8080/Bloggofant
- >
http://127.0.0.1/bloggo/fant/
对此主题的任何建议都非常感谢;)
以下是两个解压缩的webapp WAR文件夹的context.xml
个文件:
web应用/ BloggofantAuthentication / META-INF / context.xml中
<?xml version="1.0" encoding="UTF-8"?>
<Context path="">
<!-- Comment this to enable session persistence across Tomcat restarts -->
<Manager pathname=""/>
</Context>
web应用/ Bloggofant / META-INF / context.xml中
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/bloggofant">
<!-- Comment this to enable session persistence across Tomcat restarts -->
<Manager pathname=""/>
</Context>
如果我现在想通过http://127.0.0.1:8080
或http://127.0.0.1:8080/bloggofant
访问我的应用,则会收到 404 - 找不到页面错误...
答案 0 :(得分:3)
您可以使用context.xml file配置Tomcat为Web应用程序提供服务的路径。您可以将其放在WAR的META-INF目录中,其内容为:
<Context path="/bloggo/fant" />
它将在那里提供,而不是默认的/Bloggofant
路径。
请注意文档中的warning about automatic deployment:
当主机执行autoDeploy或deployOnStartup操作时,Web应用程序的名称和上下文路径是从定义Web应用程序的文件的名称派生的。因此,可能无法在应用程序中嵌入的META-INF / context.xml中定义上下文路径
在其他地方,文档告诉我们these both default to true。因此,您需要将它们设置为false才能使这些设置得到尊重。