3

私は春のプロパティ「ポート」を使用していますが、このポート変数の値はアプリケーションの実行中に動的に変化し、値が変化するたびにこの新しい動的値にアクセスしたいと考えています。しかし、以下の構成を使用すると、起動時に例外が発生します。

<custom-agent name="jolokia-agent" class="org.jolokia.mule.JolokiaMuleAgent">
    <spring:property name="port" value="#[app.registry.appConf.port]"</spring:property>
</custom-agent>

appConf は Spring Bean です。

エラーのスニペット:

10/31/12 15:18:44.244 ERROR [main] DefaultMuleApplication - null
 java.lang.NumberFormatException: For input string: "[app.registry.appConf.port]"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:449)
    at java.lang.Integer.valueOf(Integer.java:528)
    at java.lang.Integer.decode(Integer.java:958)
    at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:155)
    at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.j    ava:115)
    at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.ja    va:434)
    at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:4    06)
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.ja    va:163)
    at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:470)
    at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:516)
    at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:510)

value 属性を Spring Expression
value="#{appConf.port}"
に変更するとアプリケーションが起動しました が、実行時に値が更新されません。

実行時にこの値を変更する必要があります。これはどのように実現できますか?

4

1 に答える 1

1

appConfにPOJOを注入するだけjolokia-agentです。

そうすれば、実行時に呼び出すことができgetPort()ます。

于 2012-10-31T16:25:14.063 に答える