gpt4 book ai didi

tomcat - 用于设置全局命名资源环境变量值的选项

转载 作者:行者123 更新时间:2023-11-28 22:31:56 24 4
gpt4 key购买 nike

我在 web.xml 中使用一个环境变量,它有一个使用 cdata 部分的值,如下所示:

<env-entry> 
<env-entry-name>myEntry</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>
<![CDATA[
<a>
<b/>
</a>
]]>
</env-entry-value>
</env-entry>

我可以在我的 servlet 中读取这个值并将该字符串视为 XML。

现在我想在 Tomcat server.xml 中设置覆盖,但我只能使用属性设置值,即

<Environment name="myEntry" value="baz" type="java.lang.String" override="false"/>

是否有允许我使用 cdata 部分设置值的解决方法?

我真正需要做的是为我的 XML 格式的 Web 应用程序提供一些配置。我希望能够在部署时更改此配置,并且我需要支持多个服务器(Tomcat、WebSphere 等)。谢谢。

最佳答案

Tomcat 支持Apache Ant来自系统属性的样式变量替换:JVM 系统属性(内置/预定义的和使用 -D 开关定义的那些),以及在 catalina.properties 中定义的那些。来自 Tomcat 7.0 Configuration Overview :

Apache Ant-style variable substitution is supported; a system property with the name propname may be used in a configuration file using the syntax ${propname}. All system properties are available including those set using the -D syntax, those automatically made available by the JVM and those configured in the $CATALINA_BASE/conf/catalina.properties file.

所以你可以添加

myValue=bar<with markup>baz

然后:

<Environment name="myEntry" value="${myValue}" type="java.lang.String" override="false"/>

关于tomcat - 用于设置全局命名资源环境变量值的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591257/

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