在Mule流程中,如何在多个流程中重复使用choice-exception-stretegy? 我尝试了以下操作,但是当我运行mule应用程序时它会抛出错误。
<mule ....>
<choice-exception-strategy doc:name="My_exception_strategy">
<catch-exception-strategy when="exception.causedBy(java.net.SocketTimeoutException)" doc:name="Strategy1">
<logger message="message 1" level="INFO" doc:name="Logger"/>
</catch-exception-strategy>
<catch-exception-strategy when="exception.causedBy(java.lang.Throwable)" doc:name="Strategy2">
<logger message="message 2" level="INFO" doc:name="Logger"/>
</catch-exception-strategy>
</choice-exception-strategy>
<flow name="Test1" doc:name="Test1" processingStrategy="synchronous">
<logger message="message 3" level="INFO" doc:name="Logger"/>
<outbound-endpoint ref="myendpoint" doc:name="MyEndPoint"/>
<exception-strategy ref="My_exception_strategy" doc:name="Reference Exception Strategy"/>
<set-variable variableName="somevalue" value="#[something]" doc:name="statusCode"/>
</flow>
</mule>
答案 0 :(得分:3)
您发布的配置存在两个问题。
在例外策略之后有一个“set-variable”。在“例外策略”之后,预计不会有其他处理器。
未命名例外策略。异常策略缺少属性“name”。
尝试以下流程。
<mule ....>
<choice-exception-strategy name="my_exception_strategy" doc:name="My_exception_strategy">
<catch-exception-strategy when="exception.causedBy(java.net.SocketTimeoutException)" doc:name="Strategy1">
<logger message="message 1" level="INFO" doc:name="Logger"/>
</catch-exception-strategy>
<catch-exception-strategy when="exception.causedBy(java.lang.Throwable)" doc:name="Strategy2">
<logger message="message 2" level="INFO" doc:name="Logger"/>
</catch-exception-strategy>
</choice-exception-strategy>
<flow name="Test1" doc:name="Test1" processingStrategy="synchronous">
<logger message="message 3" level="INFO" doc:name="Logger"/>
<outbound-endpoint ref="myendpoint" doc:name="MyEndPoint"/>
<exception-strategy ref="my_exception_strategy" doc:name="Reference Exception Strategy"/>
</flow>
</mule>
希望这有帮助。