首页 > 解决方案 > 如何为不在 web-apps 文件夹中的 Apache Tomcat 设置上下文

问题描述

我想为我的 Tomcat 服务器设置 2 个上下文路径,但我不想每次都部署一个单独的 war 文件。我知道曾几何时,我可以在 Tomcat 实例的 webapps 文件夹之外有一个上下文文件夹。如果我仍然能够做到这一点,我所要做的就是重新启动我的 tomcat 会话,以便识别更改。

我一直在阅读 Tomcat 文档 8.5.43 Apache Tomcat 8 Configuration Reference。我明白这些话,但我只是越来越困惑。

这就是我要的。

这是我的应用程序根目录 C:\myFoo\index.jsp 的容器

这就是我想在我的网络浏览器中访问上述内容的方式。本地主机:8080\myFoo\index.jsp

标签: javatomcat

解决方案


请参阅定义上下文部分:

可以明确定义各个上下文元素:

在目录中的单个文件(扩展名为“.xml”)中$CATALINA_BASE/conf/[enginename]/[hostname]/。上下文路径和版本将从文件的基本名称(文件名减去 .xml 扩展名)派生。此文件将始终优先于打包在 Web 应用程序的 META-INF 目录中的任何 context.xml 文件。

因此,创建.../conf/catalina/localhost/myFoo.xml包含内容的文件:

<Context docBase="C:/myFoo" />

创建另一个.../conf/catalina/localhost/myFoo2.xml具有相同内容的文件。

现在localhost:8080\myFoo\index.jsplocalhost:8080\myFoo2\index.jsp将看到相同的内容,即使它们是两个不同加载的 web 应用程序(双倍内存使用)。


推荐阅读