Java Tomcat中的替代方案

Java Tomcat中的替代方案,java,tomcat,alias,contextpath,Java,Tomcat,Alias,Contextpath,我在Tomcat 7中部署了一个应用程序,我需要使用不同URL的一些别名。像这样: server/mainapp server/customer1 server/customer2 server/customer3 server/customer4 server/customerN 为了实现这一点,我们在server.xml中使用了几个条目,如: <Context path="/customer1" docBase="webapps/mainapp" /> <Context

我在Tomcat 7中部署了一个应用程序,我需要使用不同URL的一些别名。像这样:

server/mainapp
server/customer1
server/customer2
server/customer3
server/customer4
server/customerN
为了实现这一点,我们在server.xml中使用了几个条目,如:

<Context path="/customer1" docBase="webapps/mainapp" />
<Context path="/customer2" docBase="webapps/mainapp" />
等等


这是解决问题的正确方法吗?我观察到,我定义的越多,服务器启动所需的时间就越多,分配的内存也越多,有时会导致PermGen OutOfMemory错误。有没有办法只创建一些指向mainapp的shurtcut url?

创建多个上下文将创建多个Web应用程序,这就是为什么它启动缓慢且占用更多内存的原因。你想要一个有多个别名的webapp,对吗?每个别名是否应显示相同的内容?是。别名将显示相同的内容。它实际上是一个单一的应用程序,但每个客户都可以访问一个专用的url,该url由应用程序用来识别它。这取决于应用程序的工作方式-静态内容/servlet/spring控制器?您可以将多个servlet映射映射到同一个servlet,例如。。。一种常见的解决方案是使用带有URL重写的Apache HTTP服务器将请求转发到tomcat服务器。你可能会找到一个URL重写过滤器,你也可以在你的Web应用程序中使用它……它是一个struts应用程序,而且有点复杂。我不能在Tomcat前面使用Apache,因为它托管在一个只有Tomcat的环境中。是否有其他方法可以满足我的需要或多个上下文这是唯一的方法?尝试使用Java/Tomcat中的URL重写过滤器搜索示例-您可以将其包含在您的webapp中。我还没试过。