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?
Danke für die Antwort. Ist es möglich, Exception Payload von MuleEventContext auch zu erhalten? –
Ja, weil Sie es für seine Nachricht fragen können. In diesem Fall wäre '' 'eventContext.getMessage(). GetExceptionPayload()' ''. – afelisatti