0

Mule 3.2 でファイルを入出力できるカスタム トランスフォーマーを作成する方法がわかりません。変換用のコードのプロトタイプを作成しましたが、正常に動作しますが、トランスフォーマーでファイルを取り込む方法に関するドキュメントが見つかりません。

これは私がこれまでに持っているものですが、これでもエラーがスローされます:

@ContainsTransformerMethods
  public class xmlToJson {

  @Transformer
  public File xmlIn(File file) {
    // logic to go here
    return file;
  }
}

スローされる例外は次のとおりです。

ERROR 2012-06-27 14:08:37,664 [main] org.mule.tooling.server.application.
ApplicationDeployer: null
java.lang.IllegalStateException: Cannot convert value of type [convert.xmlToJson]
to required type [org.mule.api.processor.MessageProcessor] for property 'messageProcessors[0]': no matching editors or conversion strategy found

カスタム トランスフォーマーを構成してファイルを取り込む方法を示すドキュメントやチュートリアルが見つからないようです。

4

2 に答える 2

2

ここで説明するように、注釈付きのトランスフォーマーは通常、自動変換を目的としています。

http://www.mulesoft.org/documentation/display/MULE3USER/Creating+Custom+Transformers

ここで説明されているように、AbstractTransformer を拡張してカスタム トランスフォームを作成することで、ユース ケースにより適していると思われます。

http://www.mulesoft.org/documentation/display/MULE3USER/Creating+Custom+Transformer+Class

次のリンクで、このアプローチのいずれかを使用する方法に関する優れたチュートリアルを見つけることができます

http://www.mulesoft.org/documentation/display/MULE3EXAMPLES/Invoking+Component+Methods

于 2012-06-28T20:00:25.307 に答える
-1

カスタム ロジックを使用してカスタム トランスフォーマーを作成するには、AbstractMessageTransformer を拡張するカスタム クラスを作成する必要があります。次に、この Abstract クラスから transformMessage() をオーバーライドする必要があります。その後は、どのトランスフォーマー タグでもカスタム クラスを指定できます。注釈付きトランスフォーマーは Mule 内に登録され、Mule が sourceType から returnType に変換する必要がある場合に自動的に呼び出されます。

@ContainsTransformerMethods
public class MyCustomTransformers
{
 @Transformer
  public URL stringToURL(String string) throws MalformedURLException
   {
     return new java.net.URL(string);
   }
}

ここで、sourceType は String で、returnType は URL です。そのため、Mule 自体が文字列から URL に変換する必要がある場合は常に、このトランスフォーマーが使用されます。

Mule でカスタム トランスフォーマーを作成するための便利なリンクを次に示します。

http://javacodinggeeks.blogspot.in/2015/05/writing-custom-transformers-in-mule.html

于 2015-04-07T08:44:59.600 に答える