使用空负载将Mule 3.6迁移到Mule 3.7 NullPointerException调用方法
我正在将我的mule项目从3.6版迁移到3.7版。在版本3.6中,我能够使用调用程序调用将有效负载作为参数传递的方法 现在在3.7版中,如果我这样做,当有效负载为使用空负载将Mule 3.6迁移到Mule 3.7 NullPointerException调用方法,mule,mule-el,Mule,Mule El,我正在将我的mule项目从3.6版迁移到3.7版。在版本3.6中,我能够使用调用程序调用将有效负载作为参数传递的方法 现在在3.7版中,如果我这样做,当有效负载为null时,在类InvokerMessageProcessor的第272行执行以下测试时,我会得到NullPointerException: if (!(type.isAssignableFrom(arg.getClass()))) 因为当有效负载为nullarg时,它是null 这是一个错误吗?事实上,Mule处理空值和null值
null
时,在类InvokerMessageProcessor
的第272行执行以下测试时,我会得到NullPointerException
:
if (!(type.isAssignableFrom(arg.getClass())))
因为当有效负载为null
arg
时,它是null
这是一个错误吗?事实上,Mule处理空值和
null
值的方式从Mule 3.6+更改为3.7+,这是过去在Mule 3.6.x中对不同类型处理器和组件进行验证的方式:
- MEL(Mule表达式语言):
:falsePayload==null
- MEL:
:真有效负载为空有效负载
- MEL:
:true有效负载是org.mule.transport.NullPayload
- Groovy:
:trueorg.mule.transport.NullPayload的有效负载实例
- Groovy:
:false 现在,在Mule 3.7.x中:Payload==null
- MEL:
:真Payload==null
- MEL:
:false有效负载为空有效负载
- MEL:
:false有效载荷为org.mule.transport.NullPayload
- Groovy:
:trueorg.mule.transport.NullPayload的有效负载实例
- Groovy:
:falsePayload==null