我正在预打包一个 JSP Web 应用程序,该应用程序依赖于 web.xml 中的某些文件路径设置。这些设置在打包时是未知的,因为它们引用了客户在部署整个应用程序(其中 Web 应用程序是管理界面)时将设置的路径。
似乎避免安装程序脚本中的令牌和文件修改的最简单方法是询问用户安装位置,将此位置设置为环境变量(例如 JAVA_HOME),并让 web.xml 始终引用该变量。
有没有办法从 web.xml 中引用环境变量值? Google搜索找到了从ejb xml文件设置环境变量的J2EE方法。这不是我要找的。
您可以在任何 tomcat xml 配置文件中使用 Ant 风格的变量替换,例如:
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>${foo}</url-pattern>
</servlet-mapping>
Where foo
is a Java系统属性 http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html(系统属性)。
你不能使用操作系统环境变量 http://en.wikipedia.org/wiki/Environment_variable(envvars)直接,我想......
要使用环境变量,您可以输入
set "CATALINA_OPTS=-DsomeJavaSysProp=%SOME_OS_ENVVAR%"
in bin/setenv.bat
(或类似地在bin/setenv.sh
对于*nix)。您可能需要创建该文件。 Tomcat 启动时会运行该文件。
As CATALINA_OPTS
是一个 envvar(与命令行选项相对),系统上的其他用户不应该看到它(保存古老的 Unix),尽管我还没有测试过这一点。
http://tomcat.apache.org/tomcat-7.0-doc/config/ http://tomcat.apache.org/tomcat-7.0-doc/config/
如果您使用 Spring,您可以创建一个<context:property-placeholder/>
bean,然后直接在 Spring XML 配置文件中使用 envvars 或 sysprops(尽管不是web.xml
).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)