1

次のような cdata セクションを使用する値を持つ web.xml で環境変数を使用しています。

<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>

この値をサーブレットで読み取り、文字列を XML として扱うことができます。

Tomcat server.xml でオーバーライドを設定したいのですが、属性を使用してのみ値を設定できます。

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

cdata セクションを使用して値を設定できる回避策はありますか?

実際に私がする必要があるのは、XML 形式の Web アプリケーションの構成を提供することです。展開時にこの構成を変更できるようにしたいのですが、複数のサーバー (Tomcat、WebSphere など) をサポートする必要があります。ありがとう。

4

1 に答える 1

0

Tomcat は、システム プロパティからのApache Antスタイルの変数置換をサポートします。JVM システム プロパティ (組み込み/事前定義および -D スイッチで定義されたもの)、および で定義されたものcatalina.propertiesTomcat 7.0構成の概要から:

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"/>
于 2012-11-20T02:31:51.810 に答える