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 は public static final バイトで、その値は 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 Expression Language (SpEL) をサポートしない Spring 2.5.6 に依存しています。Spring 2 では、util:constantを使用して WHEN_EXHAUSTED_GROW 値を読み取り、それを注入する必要があります。

于 2011-08-25T18:00:49.330 に答える
1

Muleの問題ではなく、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 に答える