gpt4 book ai didi

java - 在 web.xml 中引用环境变量

转载 作者:IT老高 更新时间:2023-10-28 20:57:58 40 4
gpt4 key购买 nike

我正在预打包一个 JSP Web 应用程序,它依赖于 web.xml 中的一些文件路径设置。这些设置在打包时是未知的,因为它们引用了客户在部署整个应用程序时将设置的路径(其中 web-app 是一个管理界面)。

似乎在我的安装程序脚本中避免 token 和文件修改的最简单方法是询问用户安装位置,将此位置设置为环境变量(例如 JAVA_HOME),并让 web.xml 始终引用该位置变量。

有没有办法从 web.xml 中引用环境变量值?谷歌搜索导致从 ejb xml 文件中设置环境变量的 J2EE 方法。这不是我要找的。

最佳答案

您可以在任何 tomcat xml 配置文件中使用 Ant 样式的变量替换,例如:

<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>${foo}</url-pattern>
</servlet-mapping>

在哪里 fooJava System Property (系统属性)。

你不能使用 OS Environment Variables (envvars) 直接,我认为...

要使用envvars,你可以把

set "CATALINA_OPTS=-DsomeJavaSysProp=%SOME_OS_ENVVAR%"

bin/setenv.bat (或在 bin/setenv.sh 中类似 *nix)。您可能需要创建该文件。 Tomcat 启动时会运行这个文件。

作为 CATALINA_OPTS是一个 envvar(与命令行选项相反),它不应该被系统上的其他用户看到(保存古老的 Unix),尽管我没有测试过。

http://tomcat.apache.org/tomcat-7.0-doc/config/

如果您使用的是 Spring,您可以创建一个 <context:property-placeholder/> bean,然后直接在 Spring XML 配置文件中使用 envvars 或 sysprops(虽然不是 web.xml )。

关于java - 在 web.xml 中引用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404384/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com