我提出,我想在外部的Tomcat 8.自定義上下文路徑
以彈簧啓動應用程序運行一個彈簧啓動應用,可以選擇上下文路徑使用屬性server.context-path
在application.properties
但由於我使用的是外部tomcat 8,因此不使用此屬性。
因此,我看了一下,其中列明瞭tomcat-8 documentation:
如果要部署一個WAR文件或使用不相關的基本文件名,然後的一個上下文路徑的目錄下列選項必須用於防止重複部署:
- 禁用自動部署和deployOnStartup和server.xml中
- 定義所有上下文找到主機的的appBase之外的WAR和/或目錄和使用的context.xml文件一個docBase屬性來定義它。
因爲我不想污染server.xml
,我選擇了第二個選項。因此,我在/home/myuser/myapp/application-1.0.0.war
找到戰爭,並且我在conf/Catalina/localhost
下放置了一個上下文文件名application-1.0.0.xml
。該文件只包含那些2線:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myapp" docBase="/home/myuser/myapp"/>
我可以在tomcat8成功啓動日誌中看到,該應用程序出現在Tomcat管理器進行部署,但:
- 的路徑,而不是
/application-1.0.0
/myapp
。 - 此外,目錄
application-1.0.0
出現在work
目錄中,但保持爲空。 - 日誌不會顯示任何與彈簧相關的日誌,就像應用程序從未初始化過一樣。
注意:我知道這場戰爭是正確的,因爲,如果我把它放在了webapp
目錄(默認上下文路徑雖然)的作品。
注意:如果我重新命名application-1.0.0.xml
到,Tomcat的管理器顯示該應用程序是根據上下文路徑/foo
部署(但它仍然沒有啓動)。
任何想法?
那麼什麼是正確的配置呢?而且 - 每次部署新版本時是否需要更新文件? – ACV