3

次のように、jetty 構成でシステム プロパティを使用しようとしています。

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

しかし、jetty.home常に空を返します。この変数を設定して、それをどこに向けるにはどうすればよいですか?

コンテキストパスにこれが必要です。

私のjettyホームフォルダーはD:\Developer Tools\jetty-6.1.26. このフォルダを指す必要がありますか? もしそうなら、どうすればこれを行うことができますか? Windows グローバル変数を使用する必要がありますか?

org.eclipse.jetty.xml.XmlConfigurationのクラスを使用していorg.mortbay.jettyます。

4

1 に答える 1

10

jetty.homeJetty の起動メカニズムによって設定されます。

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.configstart.jarorg.eclipse.jetty.xml.XmlConfigurationstart.configXmlConfigurationstart.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>
  1. 相対パスと絶対パスが混在しているため、機能しません。
  2. <SystemProperty>パスを操作するときは、使用時に常にデフォルト値を宣言する必要があります。(空のデフォルトは無効です)

相対パスの正しい構文

<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

jetty.home使用する前に宣言しない場合XmlConfiguration、デフォルト値が使用され、"."現在の作業ディレクトリ (別名System.getProperty("user.dir")) に指定したハードコードされた相対パスを加えたものとして変換されます。の場合、結果は次のようになりますuser.dirD:\Code\MyProjectD:\Code\MyProject\etc\jetty7\context

絶対パスの正しい構文

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

この構文はあまり気にしない可能性jetty.homeがあり、結果は常に/etc/jetty7/contextunix および (可能性が高い) C:\etc\jetty7\contextWindows で発生します。

于 2013-05-22T15:29:56.070 に答える