配置 Web 应用程序的上下文路径

Configure the context path of a web app

我正在使用 EclipseMaven 构建一个 java 网络应用程序。该应用程序将 运行 jboss (wildfly) 或 tomcat。我想配置我的网络应用程序的上下文路径。

默认情况下,eclipse 将上下文路径设置为等于 eclipse 项目的名称(见 project -> properties -> web project settings)。但是,无论那里显示的上下文路径如何,当我部署 war 文件时,war 文件的名称用作上下文路径,而不是 eclipse 中的设置。

我想知道在以下三种情况下如何配置上下文路径:

上下文路径选择的平台/eclipse/servlet容器是否依赖?是否有人记录了每个容器的标准行为?有没有办法 configure/set 所有平台和 servlet 容器的上下文路径,无论 war 是 build/deployed 的方式和位置,更重要的是 war 名称与上下文路径不同?

到目前为止,设置 WAR 的上下文根以使其独立于正在使用的应用程序服务器的唯一方法是:使其成为 EAR 的一部分并通过以下方式提供上下文根application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
    <display-name>EAR_NAME</display-name>
    <module id="Module_***********">
        <web>
            <web-uri>YourWeb.war</web-uri>
            <context-root>YourContextRoot</context-root>
        </web>
    </module>   
</application>

即使从 JAVA EE 6 开始,WAR 的上下文根也必须是 jboss-web.xmlglassfish-web.xml 或类似服务器特定 Web 的一部分部署描述符。 Here为官方示例

我找不到 JAVA EE 7 的类似示例,但我真的不认为这已经改变。 JEE7 主要是围绕 HTML5 和 JSON 添加功能。