用拦截器减少StackTrace

时间:2016-09-14 10:47:39

标签: java exception java-ee logging interceptor

我有网络服务,我称之为业务服务方法。在其中一种方法中,抛出了一些带有适当消息的异常。在soap中我得到异常类型及其消息(一切正常)。但是在日志文件中写入了一堆堆栈跟踪(带有详细信息)。我不需要那个。我在日志文件中需要的只是异常类型及其消息(如在soap响应中)。但我不想更改日志属性,因为必须打印出另一个例外 所以问题是如何在日志文件中减少堆栈跟踪?
我已经努力通过Web方法捆绑的@Interceptors注释来解决此问题。在那里显示我的Web服务方法和Interceptor类。 getLbsLocationForService方法中会抛出异常。

@WebMethod
@Override
@Interceptors(InterceptionHandleUtil.class)
public LbsLocation getLbsLocationService(@WebParam(name="ms")String ms, @WebParam(name="serID")Long ser) throws ScAccViolation, LbsException {
    return serviceProcesses.getLbsLocationForService(ms, ser);
}

拦截班:

@Interceptor
public class InterceptionHandleUtil{
    @AroundInvoke
    public Object intercept(InvocationContext invocationContext) throws Exception {
        /*What can I do here to write down in log file just exception type and message*/
        return invocationContext.proceed();
    }
}

0 个答案:

没有答案