将几个上下文根映射到application.xml中的一个web-uri

Yeg*_*xim 5 java mapping web-applications contextroot

我有这样的application.xml.

  <module>
    <web>
      <web-uri>services-inboxService.war</web-uri>
      <context-root>/services/inboxService</context-root>
    </web>
  </module>
Run Code Online (Sandbox Code Playgroud)

我想将不同的上下文根映射到一个web-uri.但是存在约束,每个模块应该只包含一个Web部分和每个Web - 只有一个上下文根部分.有没有办法除了复制这个命名方式不同的war文件?

ag1*_*112 5

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

<hostname:port/context-root/resource-path?parameters>
Run Code Online (Sandbox Code Playgroud)

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

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

现在,如果有人想要为应用程序的单个安装使用不同的上下文根,则无法实现.即使你从类加载器的角度来看也是如此.上下文导致创建上下文类加载器,它是app server类加载器的子代.我们不能为一个Web应用程序提供多个上下文类加载器,否则无法解析资源/类引用.因此,唯一的解决方案是在不同的上下文根下运行应用程序的多个实例.