配置 Web 应用程序的上下文路径
Configure the context path of a web app
我正在使用 Eclipse
和 Maven
构建一个 java 网络应用程序。该应用程序将 运行 jboss
(wildfly
) 或 tomcat
。我想配置我的网络应用程序的上下文路径。
默认情况下,eclipse 将上下文路径设置为等于 eclipse 项目的名称(见 project -> properties -> web project settings
)。但是,无论那里显示的上下文路径如何,当我部署 war 文件时,war 文件的名称用作上下文路径,而不是 eclipse 中的设置。
我想知道在以下三种情况下如何配置上下文路径:
- 当我运行 我在eclipse 中的web 项目时,在eclipse 中使用嵌入式服务器(例如tomcat 或wildfly)。在这种情况下,它似乎采用了项目名称。
- 当我使用 eclipse 中的嵌入式服务器构建 war(使用 maven)和 运行 这个 war 文件时。它似乎使用了 war 文件的名称。
- 当我构建一个 war 并将其部署到外部 servlet 容器(在 eclipse 之外)时。它似乎也将 war 名称作为上下文路径。
上下文路径选择的平台/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.xml
、glassfish-web.xml
或类似服务器特定 Web 的一部分部署描述符。 Here为官方示例
我找不到 JAVA EE 7 的类似示例,但我真的不认为这已经改变。 JEE7 主要是围绕 HTML5 和 JSON 添加功能。
我正在使用 Eclipse
和 Maven
构建一个 java 网络应用程序。该应用程序将 运行 jboss
(wildfly
) 或 tomcat
。我想配置我的网络应用程序的上下文路径。
默认情况下,eclipse 将上下文路径设置为等于 eclipse 项目的名称(见 project -> properties -> web project settings
)。但是,无论那里显示的上下文路径如何,当我部署 war 文件时,war 文件的名称用作上下文路径,而不是 eclipse 中的设置。
我想知道在以下三种情况下如何配置上下文路径:
- 当我运行 我在eclipse 中的web 项目时,在eclipse 中使用嵌入式服务器(例如tomcat 或wildfly)。在这种情况下,它似乎采用了项目名称。
- 当我使用 eclipse 中的嵌入式服务器构建 war(使用 maven)和 运行 这个 war 文件时。它似乎使用了 war 文件的名称。
- 当我构建一个 war 并将其部署到外部 servlet 容器(在 eclipse 之外)时。它似乎也将 war 名称作为上下文路径。
上下文路径选择的平台/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.xml
、glassfish-web.xml
或类似服务器特定 Web 的一部分部署描述符。 Here为官方示例
我找不到 JAVA EE 7 的类似示例,但我真的不认为这已经改变。 JEE7 主要是围绕 HTML5 和 JSON 添加功能。