2013-09-26 110 views
0

我定義了一個流程。它用CXF發佈一個Web服務,交換模式:請求 - 響應。該服務定義/拋出異常類型:CAEService_Exception。 Web服務的實現幾乎是一個虛擬的。 ws請求由流中的其他消息處理器處理。在流程中,其他組件或ESB本身可能會拋出不同的例外,例如ConnectionException,ApplicatOneException或CompnentTwoException永遠是什麼。 在這種情況下,僅向客戶端拋出(業務異常)CAEService_Exception非常重要! 如何獲取(捕獲)不同的異常,以及如何處理/處理它們,以便CXF模塊將CAEService_Exception拋出到客戶端?轉換/轉換異常類型

感謝您的諮詢! 問候 Dianlong

<flow name="CAEService" doc:name="CAEService"> 
    <http:inbound-endpoint address="${http.host.inbound}/ebiz/ws/CAEService" exchange-pattern="request-response" doc:name="HTTP"> 
     <cxf:simple-service serviceClass="org.mule.j2a.ws.cae.CAEService"/> 
    </http:inbound-endpoint> 
    <component class="org.mule.j2a.ws.cae.CAEServiceImpl" doc:name="Java"/> 
    <flow-ref name="Fest_ERPs" doc:name="Sub Flow with transformers, call other services, etc."/> 

    <!-- exceptions --> 

</flow> 

回答

0

您可以使用選擇的異常策略搭上不同的。

<flow name="Sample_Flow"> 
... 
<choice-exception-strategy doc:name="Choice Exception Strategy"> 
    <catch-exception-strategy doc:name="Catch Exception Strategy"/> 
    <rollback-exception-strategy doc:name="Rollback Exception Strategy"/> 
</choice-exception-strategy> 
</flow> 

,然後扔東西別的客戶那裏respecive implementatinos

<catch-exception-strategy name="Catch_Exception_Strategy"> 
    -- do you stuff 
</catch-exception-strategy>