Как преобразовать любой тип данных, кроме строки, в строку в mule-config.xml - PullRequest
0 голосов
/ 24 августа 2011

Например, в файле mule-config.xml, если у нас есть

--- Start

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}"

Пожалуйста, помогите мне, как я могу преобразовать тип данных "byte" в тип данных "String".

Спасибо, Prince

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Mule 2.1.2 зависит от Spring 2.5.6, который не поддерживает Spring Expression Language (SpEL).В Spring 2 вам нужно будет использовать util: constant , чтобы прочитать значение WHEN_EXHAUSTED_GROW и ввести его.

1 голос
/ 25 августа 2011

У вас есть проблема SpEL, а не проблема Mule.

Когда вы вводите имя класса, SpEL не знает, является ли это классом или нет.Таким образом, он возвращает «org.apache.commons.pool.impl.GenericObjectPool.WHEN_EXHAUSTED_GROW» в виде строки.Вы должны использовать оператор T .

Попробуйте:

#{T(org.apache.commons.pool.impl.GenericObjectPool).WHEN_EXHAUSTED_GROW}"
...