在mule catch异常策略中获取异常信息

Get exception information in mule catch exception strategy

我在我的 mule 流 (v3.7.3) 中使用捕获异常策略。如果在我的流中抛出异常。我想在捕获异常策略中检索异常。

Mule 异常流程:

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

在我的 ExceptionTransformer.java 中,我想处理异常并获取异常对象(打印堆栈跟踪)

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();
}

有没有办法在 ExceptionTrasformer class 中获取异常堆栈跟踪?

你应该做的是向 MuleMessage 询问它的 Exception Payload,它有抛出的异常,你可以在其中获取跟踪。即message.getExceptionPayload().