0

例如在mule-config.xml文件中,如果我们有

- -开始

spring:bean id="objPool" class="org.apache.commons.pool.impl.GenericObjectPool"

spring:property name="whenExhaustedAction" value="#

{org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_GROW}"

- -结尾

这里,WHEN_EXHAUSTED_GROW 是公共静态最终字节,其值为 2。

现在当我这样做时mule -config mule-config.xml,我收到以下错误

错误:

org.mule.api.lifecycle.InitialisationException: Initialisation Failure: Error creating bean with name 'videoRequestSAXParserObjectPool' defined in URL [file:/home/joshlabs/codebase/collider-server-tidal/src/main/resources/mule-config-pingback.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [byte] for property 'whenExhaustedAction'; nested exception is java.lang.NumberFormatException: For input string: "{org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_GROW}"

请帮助我如何将“字节”数据类型转换为“字符串”数据类型。

谢谢,王子

4

2 回答 2

2

Mule 2.1.2 依赖于 Spring 2.5.6,它不支持 Spring 表达式语言 (SpEL)。在 Spring 2 中,您需要使用util:constant来读取 WHEN_EXHAUSTED_GROW 值并将其注入。

于 2011-08-25T18:00:49.330 回答
1

你有一个SpEL问题,而不是骡子问题。

当你输入一个类名时,SpEL 不知道它是否是一个类。所以它以字符串形式返回“org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_GROW”。您应该使用T 运算符

试试这个 :

#{T(org.apache.commons.pool.impl.GenericObjectPool).WHEN_EXHAUSTED_GROW}"
于 2011-08-25T14:18:57.813 回答