【问题标题】:Mule custom transformer with骡子定制变压器
【发布时间】:2012-06-28 22:52:44
【问题描述】:

我在寻找如何在 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

我似乎找不到任何文档或教程来说明如何构建自定义转换器以接收文件。

【问题讨论】:

    标签: java mule transformer


    【解决方案1】:

    为了创建具有自定义逻辑的自定义转换器,您需要创建扩展 AbstractMessageTransformer 的自定义类,然后您应该覆盖此抽象类中的 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

    【讨论】:

      【解决方案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

      【讨论】:

      • 谢谢。我扩展了 AbstractTransformer 并且它工作得很好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多