6

我正在开发一个 Web 应用程序,它由两个独立的部分组成——身份验证真正的应用程序部分。这两部分都是WAR部署在(当前)一个 Tomcat 7 实例上的 s。

WAR所以,我的文件夹中有以下两个webapps

webapps
|
+- BloggofantAuthentication
|
+- Bloggofant

到目前为止,它们在http://127.0.0.1:8080/BloggofanAuthentication和可用http://127.0.0.1:8080/Bloggofant。是否可以直接代理Tomcat的WARs (这样我就不必使用Apache httpd它的mod_proxy模块)?这样最终,WAR服务器上的 s 可以通过如下方式访问:

  • 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/

高度赞赏有关此主题的任何建议;)

编辑

以下是context.xml解压后的两个 webapp WAR 文件夹的文件:

webapps/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>

webapps/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 - Page Not Found错误...

4

1 回答 1

3

您可以使用context.xml 文件配置 Tomcat 为 Web 应用程序提供服务的路径。你可以把它放在 WAR 的 META-INF 目录中,内容如下:

<Context path="/bloggo/fant" />

它将在那里而不是默认/Bloggofant路径提供它。

注意文档中关于自动部署的警告

当主机执行 autoDeploy 或 deployOnStartup 操作时,Web 应用程序的名称和上下文路径源自定义 Web 应用程序的文件的名称。因此,上下文路径可能未在嵌入应用程序的 META-INF/context.xml 中定义

在其他地方,文档告诉我们这些都默认为 true。因此,您需要将它们设置为 false 才能尊重这些设置。

于 2013-10-24T14:31:40.293 回答