Tomcat 用于设置全局命名资源环境变量值的选项
我在web.xml中使用了一个环境变量,该变量的值使用cdata节,如下所示: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/>
<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"/>