我一直在使用Mule Devkit实现自定义处理器。
我用“mule-devkit-archetype-generic”原型创建了这个项目。 它给了我带有注释“@Module”和“@Processor”
的类我可以将参数传递给我的处理器方法。
但我无法在我的@Processor方法中获得访问MuleMessage和Payload的方法。
我怎样才能做到这一点?
答案 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将正确注入参数。