1

文字列入力を URL のリストに変換するドキュメントのトランスフォーマーの例に従おうとしていますが、エラーがスローされます。

例はここにあります: http://www.mulesoft.org/documentation/display/MULE3USER/Transformer+Annotation#TransformerAnnotation-WorkingwithCollections

トランスフォーマーの私のコードは、彼らのものからコピーして貼り付けたものです。

最初にそれを行ったとき、構成 xml に入れてトランスフォーマーを設定しました。

<custom-transformer class="com.test.transformer.StringToListTransformer" doc:name="StringToUrlList"/>

トランスフォーマーを「登録」する必要があることに注意して、後でファイルの先頭 (開始タグの後) に追加しました。

<spring:bean id="stringToListTransformer" class="com.test.transformer.StringToListTransformer"/>

ただし、アプリを実行すると、次のエラーが発生します。

Exception in thread "main" org.mule.module.launcher.DeploymentInitException: IllegalStateException: Cannot convert value of type [com.test.transformer.StringToListTransformer] to required type [org.mule.api.processor.MessageProcessor] for property 'messageProcessors[3]': no matching editors or conversion strategy found
4

2 に答える 2

3

で注釈が付けられたクラスは、実際の ではないため、@Transformerとして使用できません。XML 構成で直接使用して明示的に呼び出すことができるのは、実際のメッセージ プロセッサのみです。custom-transformerorg.mule.api.processor.MessageProcessor

ドキュメントが@Transformer言うように:

Mule 3.x には、アノテーション付きメソッドから構築されているトランスフォーマーを実際に呼び出すメカニズムがありません。

トランスフォーマーをフローでキックインさせたい場合は、次を使用する必要があります。

<auto-transformer returnClass="java.util.List.class"/>

リストを返し、優先度の高い適切な登録済みトランスフォーマーが他にないと仮定します。

それ以外の場合は、拡張して実際のトランスフォーマーを作成し、org.mule.transformer.AbstractMessageTransformerそれを で使用しcustom-transformerます。

于 2012-08-29T15:46:05.970 に答える