骡子定制变压器用

时间:2012-06-27 13:29:42

标签: java mule transformer

我在查找如何创建可以在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

我似乎无法找到任何文档或教程来展示如何构建自定义转换器以接收文件。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-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本身需要从String转换为URL时,将使用此转换器。

这是在Mule

中创建自定义变换器的一个很好的链接

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