如何在骡子中重用“选择异常策略”

时间:2014-07-02 02:39:19

标签: mule

在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>   

1 个答案:

答案 0 :(得分:3)

您发布的配置存在两个问题。

  1. 在例外策略之后有一个“set-variable”。在“例外策略”之后,预计不会有其他处理器。

  2. 未命名例外策略。异常策略缺少属性“name”。

  3. 尝试以下流程。

    <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> 
    

    希望这有帮助。