Udi*_*-On 34 java web.xml environment-variables
我正在预先打包一个JSP web-app,它依赖于web.xml中的一些文件路径设置.这些设置在打包时是未知的,因为它们引用了客户在部署整个应用程序时设置的路径(其中web-app是管理界面).
似乎在我的安装程序脚本中避免令牌和文件修改的最简单方法是向用户询问安装位置,将此位置设置为环境变量(例如JAVA_HOME),并让web.xml始终引用该变量.
有没有办法从web.xml中引用环境变量值?Google搜索引出了来自ejb xml文件的SETTING环境变量的J2EE方法.这不是我想要的.
Nei*_*gan 36
您可以在任何tomcat xml配置文件中使用Ant样式的变量替换,例如:
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>${foo}</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
哪里foo是Java系统属性(sysprop).
您不能直接使用OS环境变量(envvars),我认为......
要使用envvars,你可以放
set "CATALINA_OPTS=-DsomeJavaSysProp=%SOME_OS_ENVVAR%"
Run Code Online (Sandbox Code Playgroud)
in bin/setenv.bat(或类似地bin/setenv.sh用于*nix).您可能需要创建该文件.Tomcat将在启动时运行此文件.
与CATALINA_OPTSenvvar(与命令行选项相对)一样,它不应该被系统上的其他用户看到(保存古老的Unix),尽管我没有测试过.
http://tomcat.apache.org/tomcat-7.0-doc/config/
如果您使用的是Spring,则可以创建一个<context:property-placeholder/>bean,然后在Spring XML配置文件中直接使用envvars或sysprops(尽管不是web.xml).
ax.*_*ax. 12
我想你不想使用环境变量(我认为不能从web.xml中访问),但环境条目 [ 1,2 ].像这样:
<env-entry>
<env-entry-name>Bla/SomeFilePath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/opt/bla</env-entry-value>
</env-entry>
Run Code Online (Sandbox Code Playgroud)
您可以使用SomeFilePath,如:
InitialContext ic = new InitialContext();
String s = (String) ic.lookup("java:comp/env/ejb/Bla/SomeFilePath");
Run Code Online (Sandbox Code Playgroud)
基本上,你不这样做.本web.xml应包含默认值的东西,是的,但你应该重写他们实际上做部署时.如果要部署到Tomcat,则可以通过在context.xml用于部署的条目中包含适当的条目来执行此操作.例如:
<Context path="/app">
<!-- For things described by webapp parameters -->
<Parameter name="foobar" value="grill" />
<!-- For things described by environment entries -->
<Environment name="Bla/SomeFilePath" type="java.lang.String"
value="/opt/bla" />
</Context>
Run Code Online (Sandbox Code Playgroud)
其他容器将有自己的机制来执行此操作.您必须查找他们的文档(或者更加关注您的帮助请求).
小智 5
可以在 xml 文件中访问环境变量,如下所示:
${env.ENVIRONMENT_VARIABLE_NAME}
Run Code Online (Sandbox Code Playgroud)
显然,用户帐户设置和访问问题可能存在问题,但我已尝试使用系统变量,并且可以正常工作!
| 归档时间: |
|
| 查看次数: |
80589 次 |
| 最近记录: |