Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未设置Jetty home系统属性_Java_Jetty_System Properties - Fatal编程技术网

Java 未设置Jetty home系统属性

Java 未设置Jetty home系统属性,java,jetty,system-properties,Java,Jetty,System Properties,我试图在jetty配置中使用system属性,如下所示: <SystemProperty name="jetty.home" default="" />/etc/jetty7/context /etc/jetty7/context 但是jetty.home总是返回空的。如何设置此变量并将其指向何处 我需要一个上下文路径 我的jetty主文件夹是D:\Developer Tools\jetty-6.1.26。是否需要指向此文件夹?如果是,我该

我试图在jetty配置中使用system属性,如下所示:

<SystemProperty name="jetty.home" default="" />/etc/jetty7/context
/etc/jetty7/context
但是
jetty.home
总是返回空的。如何设置此变量并将其指向何处

我需要一个上下文路径

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


我正在使用
org.mortbay.jetty
jetty.home
中的
org.eclipse.jetty.xml.XmlConfiguration
类,该类由jetty的启动机制设置

您使用的是Jetty 6.1.26(注意:Jetty 6.x已被弃用,并且在2010年就已经停止使用)

虽然我不知道Jetty 6是如何工作的,但我知道Jetty 7/8/9在这方面是如何工作的

更新:2019年8月:Jetty 9.4.x是Jetty当前稳定且积极支持的版本主线

Jetty启动机制(模块:.aka
start.jar
)将在(位于
start.jar
中的文件)中建立
Jetty.home
属性,然后使用
org.eclipse.Jetty.xml.XmlConfiguration
类()在
XmlConfiguration
对象中建立一组属性,然后加载命令行上声明的XML文件并
start.ini

问题#1:混合码头版本

您有多种Jetty版本,可以工作,但不能跨Jetty 6(如您声明的Jetty主文件夹
D:\Developer Tools\Jetty-6.1.26
)和Jetty 7(如您声明的
/etc/Jetty 7/context
中所示)。它们是100%不相容的

问题#2:错误的XML语法使用

用于处理路径的XML语法错误

您的语法


/etc/jetty7/context
  • 它是相对路径和绝对路径的混合,不起作用
  • 使用路径时,必须始终在
    使用中声明默认值。(空默认值无效)
  • 相对路径的正确语法

    
    etc/jetty7/context
    
    如果您的
    jetty.home
    D:\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.dir
    D:\code\MyProject
    ,则结果将是
    D:\code\MyProject\etc\jetty7\context

    绝对路径的正确语法

    /etc/jetty7/context
    

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

    感谢您的澄清。关于混合版本和默认路径,您完全正确。原来我在系统所有权和etc/码头之间有一个入口。。。