正しい方向に考えさせられたので、@vanjeの答えを受け入れるつもりです。これが私が使用することになったものです:
- WARディストリビューションの外部にjetty-web.xmlを作成します(アプリを「外部」から構成する場合は、WARと一緒にパッケージ化する必要はありません)。
jetty-web.xml
の横に配置jetty.xml
- 必要なパラメーターは1つだけだったので、最終的に次のようになりました。
jetty-web.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
"http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<New class="org.mortbay.jetty.plus.naming.EnvEntry">
<Arg>myOwnParam</Arg>
<Arg type="java.lang.String">//some/path/to/the/file</Arg>
</New>
</Configure>
Javaスニペット
InitialContext c = new InitialContext();
EnvEntry env = (EnvEntry)
c.lookup("org.mortbay.jetty.plus.naming.EnvEntry/myOwnParam");
final String myString = (String) env.getObjectToBind();
myString
ここでの最大の落とし穴は、JNDIがローカルコンテキストを使用していることに気付くまで機能しなかったデフォルトの環境から取得しようとしていたことです。これは私にとっては問題ありませんが、TomcatなどでWARを移動しようとすると、移植性が損なわれます。誰かが例を投稿できる場合、これをデフォルトのコンテキストに保存する方法はgreatOwnParamになります