0

作業中のスプリング WAR を OSGI 環境に移動しようとしています (glassfish 3.1 およびブループリントでは、スプリング 3.0.5)。アプリケーションは、次のようにプロパティ ファイルをディスクからロードします。

<bean id="myProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="${my_conf}/my.properties"/>
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
</bean>

${my_conf}/my.properties既存のパス (c:\conf\my.properties) に変換されたデバッガーに表示されます

次の Bean 宣言でjms.url定義されているプロパティを使用しますmy.properties

<amq:broker useJmx="false" persistent="false" brokerName="embeddedbroker">
    <amq:transportConnectors>
        <amq:transportConnector uri="tcp://${jms.url}"/>
        <amq:transportConnector uri="vm://embeddedbroker" />
    </amq:transportConnectors>
</amq:broker>

そして、展開時に例外が発生します"Could not resolve placeholder ${jms.url}"

なぜ失敗するのですか?ディスク上のファイルからプロパティをロードする別の方法はありますか?

ありがとうございました

4

2 に答える 2

0

それは解決策ではありませんが、私の問題の説明です。この問題は、Spring 3 および osgi のこのバグに関連しています。

それを理解するには、スプリングログを開いてデバッグレベルにする必要がありました。

于 2012-02-26T11:06:14.483 に答える
0

これは OSGI 環境であるため、spring-osgi-core jar をアプリケーションに追加する必要があります。このリンクを見て、OSGI フレームワークのプロパティ プレースホルダーを構成します。

于 2012-02-06T16:36:08.080 に答える