Java 在Tomcat中,一个appBase是否可以由多个上下文路径提供服务?

Java 在Tomcat中,一个appBase是否可以由多个上下文路径提供服务?,java,tomcat,Java,Tomcat,在Tomcat中,一个appBase是否可以由多个上下文路径提供服务 我有一个应用程序库,它最近取代了第二个应用程序库。我的问题是许多用户仍然访问旧上下文。我想从一个appBase为现在很常见的应用程序提供服务,而这个appBase可以通过任何一个上下文访问。我在低洼的水果上挥杆,并在“webapps”目录中使用了一个符号链接。。。将旧上下文路径指向新上下文路径;它可以工作,但感觉很“俗气”。而且我不喜欢为这两种上下文创建数据库连接池(我希望尽量减少连接到数据库的资源) 无论如何,如果有人知道这

在Tomcat中,一个appBase是否可以由多个上下文路径提供服务

我有一个应用程序库,它最近取代了第二个应用程序库。我的问题是许多用户仍然访问旧上下文。我想从一个appBase为现在很常见的应用程序提供服务,而这个appBase可以通过任何一个上下文访问。我在低洼的水果上挥杆,并在“webapps”目录中使用了一个符号链接。。。将旧上下文路径指向新上下文路径;它可以工作,但感觉很“俗气”。而且我不喜欢为这两种上下文创建数据库连接池(我希望尽量减少连接到数据库的资源)


无论如何,如果有人知道这样做的“正确”方法,我将不胜感激。我使用的是Tomcat 6.0.16-没有apache前端(我想URL重写会很好)。

是的,进入Tomcat Web应用程序管理器并向下滚动到“服务器上的部署目录或WAR文件”。对于“上下文路径(可选):”将其放入新上下文中。对于“WAR或目录URL:”将其放在与现有应用程序相同的路径中。

我不确定上述答案是否会阻止您的Web应用程序加载两次(因为您必须将其部署到新的和旧的上下文路径),但我可能会弄错。另一种选择是在旧上下文中保留一个非常简单的webapp,它除了在web.xml中声明一个自定义servlet过滤器外,什么都不做,该过滤器将所有请求重新写入新路径(基本上模拟apache的重写规则行为)。您必须自己编写过滤器类,但这将非常简单。

或者让极其简单的应用程序重定向到实际应用程序。这样一来,你只需点击第二个应用程序一次,而且时间很短,不必重新设计apaches重写行为,这就是我所说的在简单应用程序中只使用拦截过滤器的意思;只需重定向到实际应用程序即可。我并没有暗示您应该尝试复制更高级的重写功能;)