如何在@Processor方法中访问Payload和MuleMessage

时间:2013-03-07 18:20:31

标签: java customization mule mule-studio

我一直在使用Mule Devkit实现自定义处理器。

我用“mule-devkit-archetype-generic”原型创建了这个项目。 它给了我带有注释“@Module”和“@Processor”

的类

我可以将参数传递给我的处理器方法。

但我无法在我的@Processor方法中获得访问MuleMessage和Payload的方法。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

要访问有效负载,请使用:

@Payload final DESIRED_TYPE payload

DESIRED_TYPE替换为您想要的类型,Mule会将当前有效负载自动转换为所需类型。

例如,这为您提供了一个字节有效负载:

@Payload final byte[] payload

要访问MuleMessage,您实际上是访问MuleEvent并从中获取消息。为此,您需要在@Inject方法上添加@Processor注释,并在处理器方法中添加MuleEvent muleEvent参数。

使用Mule 3.8.1更新2017/08/31

如果您尝试使用@Processor注释@Inject,DevKit现在会生成编译错误。错误消息指出,如果您只是在MuleEvent方法中添加MuleMessage@Processor参数,DevKit将正确注入参数。