2016-06-05 9 views
0

Ich bin Catch-Ausnahme-Strategie in meinem Mule-Flow (v3.7.3). Wenn eine Ausnahme in meinem Fluss geworfen wird. Ich möchte die Ausnahme in fangen Ausnahme Strategie abrufen.Erhalten Ausnahme Informationen in Mule Catch Ausnahme Strategie

Mule Ausnahme Fluss:

<choice-exception-strategy 
     doc:name="Choice Exception Strategy"> 
     <catch-exception-strategy 
      when="exception.causedBy(com.nc.exception.NcException)" 
      doc:name="Notification Center Exception Strategy"> 
      <custom-transformer 
       class="com.zoto.nc.transformer.json.ExceptionTransformer" doc:name="Exception Transformer"> 
      </custom-transformer> 
     </catch-exception-strategy> 
    </choice-exception-strategy> 

In meinem ExceptionTransformer.java mag ich die Ausnahme behandeln und das Ausnahmeobjekt erhält

ExceptionTransformer.java

public class ExceptionTransformer extends AbstractMessageTransformer { 

private static org.apache.log4j.Logger LOG = Logger.getLogger(ExceptionTransformer.class); 

@Override 
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { 
    // Need caught exception trace here. 
    try { 
     LOG.info("Initiating Transformer for Exception Response" + message.getPayloadAsString()); 
    } catch (Exception e2) { 
     e2.printStackTrace(); 
    } 
    LOG.info("Request landed at :" + new Date()); 
    return message.getPayload(); 
} 
(die Stacktrace drucken)

Gibt es eine Möglichkeit, die Exception Stacktrace in der ExceptionTrasformer-Klasse zu erhalten?

Antwort

0

Was Sie tun sollten, ist die MuleMessage für ExceptionPayload fragen, die die geworfene Ausnahme hat, wo Sie die Spur erhalten können. Das ist .

+0

Danke für die Antwort. Ist es möglich, Exception Payload von MuleEventContext auch zu erhalten? –

+1

Ja, weil Sie es für seine Nachricht fragen können. In diesem Fall wäre '' 'eventContext.getMessage(). GetExceptionPayload()' ''. – afelisatti

Verwandte Themen