【问题标题】:Jetty home system property is not setJetty home 系统属性未设置
【发布时间】:2013-05-22 14:58:34
【问题描述】:

我正在尝试在我的码头配置中使用系统属性,如下所示:

<SystemProperty name="jetty.home" default="" />/etc/jetty7/context

但是jetty.home 总是返回空。如何设置这个变量并将其指向哪里?

我需要这个作为上下文路径。

我的码头主文件夹是D:\Developer Tools\jetty-6.1.26。它需要指向这个文件夹吗?如果是这样,我该怎么做?我需要使用 Windows 全局变量吗?

我正在使用来自org.mortbay.jettyorg.eclipse.jetty.xml.XmlConfiguration 类。

【问题讨论】:

    标签: java jetty system-properties


    【解决方案1】:

    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/。又名start.jar)将在start.config(存在于start.jar 中的文件)中建立jetty.home 属性based on a set of rules,然后使用@987654331 @class(also defined in the start.config)在XmlConfiguration对象中建立一组属性,然后加载在命令行和start.ini声明的XML文件。

    问题 1:混合 Jetty 版本

    您可以使用多种 Jetty 版本,但不能跨 Jetty 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>
    
    1. 它是相对路径和绝对路径的混合,将不起作用。
    2. 在使用路径时,您必须始终在 &lt;SystemProperty&gt; 上声明一个默认值。 (空默认无效)

    相对路径的正确语法

    <Set name="monitoredDir">
        <SystemProperty name="jetty.home" default="." />etc/jetty7/context
    </Set>
    

    如果您的jetty.homeD:\Developer Tools\jetty-distribution-7.6.11.v20130520,那么这将指向D:\Developer Tools\jetty-distribution-7.6.11.v20130520\etc\jetty7\context

    如果您在使用XmlConfiguration 之前未声明jetty.home,则将使用默认值,"." 将被翻译为您当前的工作目录(也称为System.getProperty("user.dir"))加上您指定的硬编码相对路径。如果user.dirD:\Code\MyProject,那么结果将是D:\Code\MyProject\etc\jetty7\context

    绝对路径的正确语法

    <Set name="monitoredDir">/etc/jetty7/context</Set>
    

    这种语法可能不太关心jetty.home,结果在unix上总是/etc/jetty7/context,在windows上(很可能是)C:\etc\jetty7\context

    【讨论】:

    • 感谢您的澄清。关于混合版本和默认路径,您完全正确。原来我在 SystemPropoerty 和 etc/jetty 之间有一个输入...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2015-06-02
    • 2021-12-26
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多