Mule自定义异常类没有捕获一些异常

时间:2017-04-23 04:27:34

标签: exception-handling mule

我有一个Mule流程,它从服务中获取一个可能引发错误的oauth令牌。但是,即使最后有一个catch异常策略,该异常也不会被捕获。有人可以解释为什么没有发现异常吗?当我使用无效令牌通过SOAP UI发布XML以触发异常时,请求将转到流,但不会捕获异常。相反,我得到一个指示无效令牌的堆栈跟踪。这是流程:

    <flow name="order-query">
      <http:listener config-ref="HTTP_config"
          path="order/request" doc:name="HTTP" />
       <flow-ref name="oauth-token-service">
      <cxf:jaxws-service doc:name="SPOP SOAP"
            serviceClass="o.x.p.SpopWS">
          <cxf:inInterceptors>
            <spring:ref bean="HeaderInInterceptor" />
        </cxf:inInterceptors>
        <cxf:outInterceptors>
            <spring:ref bean="faultOutInterceptor" />
            <spring:ref bean="headerOutInterceptor" />
        </cxf:outInterceptors>
        <cxf:outFaultInterceptors>
            <spring:ref bean="OutSoapFaultInterceptor" />
        </cxf:outFaultInterceptors>
    </cxf:jaxws-service>
    <scripting:transformer>
        <scripting:script engine="python">
           ...
        </scripting:script>
    <scripting:transformer>
    <catch-exception-strategy>
       <logger level="INFO" message=" Should be handled here #[payload]"/>
    </catch-exception-strategy>
  </flow>

1 个答案:

答案 0 :(得分:0)

你确定没有抓住异常吗? catch-exception-strategy的默认行为是记录捕获的异常。这就是您在日志中看到堆栈跟踪的原因。

对于mule 3.8及以上版本

您可以使用复选框(日志例外)禁用/启用此行为:

enter image description here

或XML(logException=false):

<catch-exception-strategy logException="false" doc:name="Catch Exception Strategy">
    <logger level="INFO" doc:name="Logger"/>
</catch-exception-strategy>

for mule 3.7:看看这里:https://stackoverflow.com/a/42181054/804521