我将接受@vanje 的回答,因为它让我思考了正确的方向。这是我最终使用的:
- 在您的 WAR 发行版之外创建 jetty-web.xml(不,如果您想从“外部”配置应用程序,您不想将其与 WAR 一起打包)
jetty-web.xml
旁边的地方jetty.xml
- 我只需要一个参数,所以我得到了以下结果:
码头-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