jetty.home
由Jetty的啓動機制設置。
您正在使用碼頭6.1.26 (注:碼頭6.x中已被棄用,結束於2010年碼頭續航最好要回7/8/9是當前積極支持碼頭的版本)
雖然我不知道Jetty 6是如何工作的,但我知道Jetty 7/8/9在這方面的工作原理。
碼頭啓動機構(模塊:/jetty-start/
又名start.jar
)將建立在start.config
(存在於start.jar
的文件)的所述jetty.home
屬性based on a set of rules,然後使用org.eclipse.jetty.xml.XmlConfiguration
類(also defined in the start.config
)建立一組中的屬性XmlConfiguration
對象,然後加載命令行中聲明的XML文件和start.ini
。
問題1:混合碼頭版本
你有碼頭型號的混合,也可以工作,但不能跨碼頭6(如圖的D:\Developer Tools\jetty-6.1.26
你宣稱碼頭主文件夾)和Jetty 7(如你的/etc/jetty7/context
聲明所示)。他們100%不相容。
問題2:與工作路徑錯誤的XML語法使用
你的XML語法是錯誤的。
你的語法
<Set name="monitoredDir">
<SystemProperty name="jetty.home" default="" />/etc/jetty7/context
</Set>
- 它是相對和絕對路徑的組合,將無法正常工作。
- 在處理路徑時,您必須始終聲明使用
<SystemProperty>
時的默認值。(空的默認無效)
正確語法相對路徑
<Set name="monitoredDir">
<SystemProperty name="jetty.home" default="." />etc/jetty7/context
</Set>
如果您jetty.home
是D:\Developer Tools\jetty-distribution-7.6.11.v20130520
,那麼這將指向D:\Developer Tools\jetty-distribution-7.6.11.v20130520\etc\jetty7\context
如果不前申報jetty.home
使用XmlConfiguration
然後將使用默認值,"."
它將被翻譯爲任何您當前的工作目錄是(也知道如System.getProperty("user.dir")
)加上您指定的硬編碼相對路徑。如果user.dir
是D:\Code\MyProject
,那麼結果將是
正確語法絕對路徑
<Set name="monitoredDir">/etc/jetty7/context</Set>
這句法都可以在Unix不在乎jetty.home
,結果永遠是/etc/jetty7/context
及(極有可能是)在窗口上C:\etc\jetty7\context
。
感謝您的澄清。關於混合版本和默認路徑,您完全正確。原來我在SystemPropoerty和etc/jetty之間輸入了一個... – user1226868