2012-09-25 61 views
1

我使用在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,...)。謝謝。

回答

0

Tomcat從系統屬性支持Apache Ant樣式變量替換:JVM系統屬性(內置/預定義和使用-D開關定義的屬性)以及在catalina.properties中定義的屬性。從Tomcat 7.0 Configuration Overview

支持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"/>