jetty.home
由 Jetty 的启动机制设置。
您正在使用 Jetty 6.1.26 (注意:Jetty 6.x 已被弃用,并于 2010 年结束生命周期)
虽然我不知道 Jetty 6 是如何工作的,但我确实知道 Jetty 7/8/9 在这方面是如何工作的。
更新:2019 年 8 月: Jetty 9.4.x 是 Jetty 当前稳定且受到积极支持的版本主线。
Jetty 启动机制(模块:/jetty-start/
.aka start.jar
)将根据(存在于 中的文件)中的一组规则jetty.home
建立属性,然后使用类(也在 中定义)在对象中建立一组属性,然后加载在命令行上声明的 XML 文件和.start.config
start.jar
org.eclipse.jetty.xml.XmlConfiguration
start.config
XmlConfiguration
start.ini
问题 #1:混合 Jetty 版本
您可以混合使用 Jetty 版本,但不能跨 Jetty 6(如您声明的 Jetty 主文件夹中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
is 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
,那么结果将是D:\Code\MyProject\etc\jetty7\context
绝对路径的正确语法
<Set name="monitoredDir">/etc/jetty7/context</Set>
这种语法可能不太关心jetty.home
,结果将始终/etc/jetty7/context
在 unix 上,并且(很可能是)C:\etc\jetty7\context
在 windows 上。