5

我有这样的application.xml。

  <module>
    <web>
      <web-uri>services-inboxService.war</web-uri>
      <context-root>/services/inboxService</context-root>
    </web>
  </module>

我想将不同的上下文根映射到一个 web-uri。但是有一些限制,每个模块应该只包含一个web部分,每个web - 只有一个context-root部分。除了复制这个以不同名称命名的war文件之外,还有其他方法吗?

4

1 回答 1

5

Yegoshin Maxim - 我相信您必须清楚基于 Java EE 的 Web 应用程序中的 URI 概念:

<hostname:port/context-root/resource-path?parameters>

现在,如果有人想使用不同的主机名+端口组合来为同一个已安装的应用程序提供服务,他们应该使用虚拟主机的概念,该概念主要由 Tomcat、WebSphere 等应用程序服务器支持。

如果有人想使用不同的资源路径映射到 Web 应用程序中的相同资源,可以通过在 web.xml 中配置 url-pattern 来完成

现在,如果有人想为应用程序的单个安装使用不同的上下文根,这是不可能的。即使您从类加载器的角度考虑。上下文导致创建上下文类加载器,它是应用服务器类加载器的子级。一个 Web 应用程序不能有多个上下文类加载器,否则无法解析资源/类引用。因此,唯一的解决方案是让应用程序的多个实例在不同的上下文根下运行。

于 2012-08-22T12:53:35.670 回答