在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()
.
我在我的 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()
.