【发布时间】:2012-11-01 14:59:44
【问题描述】:
我正在使用一个弹簧属性“端口”,但是这个端口变量的值在应用程序运行时会动态变化,我想在每次它的值变化时访问这个新的动态值。但是使用下面的配置时,我在启动时遇到异常。
<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 表达式时启动
value="#{appConf.port}"
但该值不会在运行时更新。
我需要在运行时更改此值。如何做到这一点?
【问题讨论】: