我创建了一个Mule应用程序,它从一些json提要中获取数据,并使用我创建的自定义转换器对它们进行转换。
我有一个父类Event
和两个继承它的子类:Event1
和Event2
。我的自定义转换器(auto-transformer
)的返回类是Event
。
我正在使用选择流控制组件,因此当达到Event1
的某个数据值时,会发送邮件,当达到Event2
的某个数据值时,会发送不同的邮件
在Event1
中,我定义了方法getThisData()
,并在Event2
中定义了getThatData()
。
当我使用#[payload.getThisData()]
时,一切正常,检查值,如果条件为真,则发送邮件。
但是,对于Event2
分支,它不起作用。它给了我一个错误。它试图在getThatData()
类中查找Event1
,显然它不存在。
我该如何解决这个问题?如何从getThatData()
获得价值?
我使用的是Mule Studio。
<processor-chain>
<auto-transformer returnClass="events.Event" name="JSONToEvent"></auto-transformer>
<logger level="INFO" doc:name="Logger"/>
<choice doc:name="Choice">
<when expression="#[payload.getThisData()>1200]">
<twitter:update-status config-ref="Twitter" status="Value reached"/>
</when>
<when expression="#[payload.getThatData()>11]">
<twitter:update-status config-ref="Twitter" status="The other value reached"/>
</when>
<otherwise>
<twitter:update-status config-ref="Twitter" status="#[payload]" doc:name="Normal"/>
</otherwise>
</choice>
</processor-chain>
答案 0 :(得分:0)
您可以尝试检查表达式中的有效内容类:
#[payload instanceof events.Event2 && payload.getThatData()>11]