![](/img/trans.png)
[英]How to set up tomcat context path for web application? .war file name is coming infront of the application name in the url
[英]Set context path irrespective for WAR version name in Tomcat
我正在使用 Maven 構建我們的應用程序。
所以戰爭名稱將是
MyTest-1.00-SNAPSHOT1.0<\/code> 。如果我在 Tomcat 中部署相同的名稱,我將使用 URL 作為
//localhost:8080/MyTest-1.00-SNAPSHOT1.0
最好的方法是直接生成名為MyTest.war
的 war 文件。 為此,您可以在build
部分使用finalName
:
<build>
<finalName>MyTest.war</finalName>
...
</build>
編輯:(添加更多由評論產生的信息)
AFAIK 沒有任何我們可以在戰爭中包含的東西可以自動設置與文件名無關的上下文。
來自: Apache Tomcat 7 配置參考 - 上下文容器#命名
當主機執行
autoDeploy
或deployOnStartup
操作時,Web 應用程序的名稱和上下文路徑源自定義 Web 應用程序的文件的名稱。 因此,上下文路徑可能未在嵌入應用程序的META-INF/context.xml
定義,並且上下文名稱、上下文路徑、上下文版本和基本文件名(名稱減去任何 .war或 .xml 擴展名)的文件。
還說:
如果要使用與基本文件名無關的上下文路徑部署 WAR 文件或目錄,則必須使用以下選項之一來防止雙重部署:
- 禁用
autoDeploy
和deployOnStartup
並在server.xml
定義所有Contexts
- 在主機的
appBase
之外找到 WAR 和/或目錄,並使用帶有docBase
屬性的context.xml
文件來定義它。
但缺點是必須為每個新版本更新配置。
當您使用 Maven 時,也許可以選擇使用Apache Tomcat Maven 插件來部署戰爭。 它允許配置不同的上下文路徑(我從未使用過這個插件):
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/mycontext</path>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>
在 server.xml 中,在<Host>
下添加上下文:
你的情況是<Context docBase="MyTest-1.00-SNAPSHOT1.war" path="/MyTest" reloadable="true"/>
只需執行此操作(摘自我項目的 pom.xml 的片段)
換句話說,使用project\/build\/finalName<\/em> TWICE<\/strong> ,一次在 WAR 插件中,一次在標簽層次結構的最外層。
實現OP所需的非常簡單的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.