我试图在munit中抛出一个Filter Unaccepted Exception来测试我的错误处理,但是我收到了这个错误
org.mule.api.MessagingException: Failed to invoke throw-an.
at get_data_filter_unaccepted_exception-test.mock:throw-an{doc:name=Throw unaccepted Exception, exception-ref=#[new org.mule.api.routing.filter.FilterUnacceptedException()], whenCalling=.*:.*}(get_data_from_qcfc-test-suite.xml:316)
at appleFlow.munit:test{initialState=started, description=Test, ignore=false, abstract=false, id=MunitTestFlow$$EnhancerByMUNIT$$904837f0{get_data_filter_unaccepted_exception-test}}(get_data_from_qcfc-test-suite.xml:315)
Caused by: org.mule.api.expression.ExpressionRuntimeException: Execution of the expression "new org.mule.api.routing.filter.FilterUnacceptedException()" failed.
at org.mule.el.mvel.MVELExpressionLanguage.evaluateInternal(MVELExpressionLanguage.java:232)
这是我抛出异常
<mock:when messageProcessor=".*:.*" doc:name="Mock API Token Web Service Call">
<mock:with-attributes>
<mock:with-attribute name="doc:name" whereValue="#['Get API Token']"/>
</mock:with-attributes>
<mock:then-return payload="#[getResource('api_token_success.xml').asString()]" mimeType="application/xml"/>
</mock:when>
我认为这是因为我的MEL声明
#[new org.mule.api.routing.filter.FilterUnacceptedException()]
答案 0 :(得分:2)
你可以使用一个groovy组件来抛出你的异常
<scripting:component doc:name="Throw Exception">
<scripting:script engine="Groovy"><![CDATA[throw new org.mule.api.routing.filter.FilterUnacceptedException(); ]]></scripting:script>
</scripting:component>
希望它有所帮助。
/ T
答案 1 :(得分:1)
我没有在您粘贴的代码段中看到throw-an
来电。
无论如何,org.mule.api.routing.filter.FilterUnacceptedException
的参数构造函数不公开,请尝试使用#[new org.mule.api.routing.filter.FilterUnacceptedException('Some message')]