java Mule自定义转换器
在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
我似乎找不到任何文档或教程来说明如何构造一个自定义的转换器以容纳文件
# 1 楼答案
注释变压器通常用于自动转换,如下所述:
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
# 2 楼答案
为了使用自定义逻辑创建自定义转换器,您需要创建扩展AbstractMessageTransformer的自定义类,然后您应该从该抽象类重写transformMessage()。之后,只有您可以在任何transformer标记中提供自定义类。 带注释的转换器将在Mule中注册,如果Mule需要从sourceType转换为returnType,它们将被自动调用
这里sourceType是String,returnType是URL。因此,每当Mule本身需要从字符串转换为URL时,就会使用这个转换器
这里有一个很好的链接,用于在Mule中创建自定义变压器
http://javacodinggeeks.blogspot.in/2015/05/writing-custom-transformers-in-mule.html