【问题标题】:How to access Payload and MuleMessage in @Processor method如何在 @Processor 方法中访问 Payload 和 MuleMessage
【发布时间】:2013-03-07 18:20:30
【问题描述】:
我一直在使用 Mule Devkit 实现我的自定义处理器。
我使用“mule-devkit-archetype-generic”原型创建了项目。
它给了我带有注释“@Module”和“@Processor”的类
我可以将参数传递给我的处理器方法。
但我无法在 @Processor 方法中访问 MuleMessage 和 Payload。
我怎样才能做到这一点?
【问题讨论】:
标签:
java
customization
mule
mule-studio
【解决方案1】:
要访问有效负载,请使用:
@Payload final DESIRED_TYPE payload
将DESIRED_TYPE 替换为您想要的类型,Mule 会自动将当前有效负载转换为所需的类型。
例如,这给你一个字节有效载荷:
@Payload final byte[] payload
要访问 MuleMessage,您实际上是访问 MuleEvent 并从中获取消息。为此,您需要在 @Processor 方法上添加 @Inject 注释,并在处理器方法中添加 MuleEvent muleEvent 参数。
使用 Mule 3.8.1 更新 2017/08/31
如果您尝试使用 @Inject 注释 @Processor,DevKit 现在会生成编译错误。错误消息指出,如果您只是将MuleEvent 或MuleMessage 参数添加到您的@Processor 方法,DevKit 将正确地注入参数。