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

Tomcat 用于设置全局命名资源环境变量值的选项,tomcat,environment-variables,server.xml,Tomcat,Environment Variables,Server.xml,我在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/>

我在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节设置值

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

Tomcat支持系统属性中的样式变量替换:内置/预定义的JVM系统属性和使用-D开关定义的JVM系统属性,以及在catalina.properties中定义的JVM系统属性。发件人:

支持Apache Ant风格的变量替换;名为propname的系统属性可以在配置文件中使用语法${propname}。所有系统属性都可用,包括使用-D语法设置的属性、JVM自动提供的属性以及$CATALINA_BASE/conf/CATALINA.properties文件中配置的属性

所以你可以加上

myValue=bar<with markup>baz
然后:

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