package com.java110.core.aop.service; import com.java110.utils.log.LoggerEngine; //import org.aspectj.lang.ProceedingJoinPoint; /** * 服务端切面,主要处理服务端发生未知异常,导致调用端无法处理, * 这里将 异常信息统一协议返回 * Created by wuxw on 2017/2/28. */ public class SmoServiceAspect extends LoggerEngine { /** * 切面方法 * @param pjp * @return * @throws Throwable public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable { Object[] httpParamObjects = pjp.getArgs(); Object obj = null; Object[] params = null; try { params = pjp.getArgs(); obj = pjp.proceed(params); } catch (Exception e) { //new UtilException(1999,e); logger.error("--------[SmoServiceAspect.aroundMethod] ---------出现异常:", e); String transactionId = "-1"; String serviceCode = "-1"; String resultCode = ProtocolUtil.RETURN_MSG_ERROR; String resultMsg = "失败,失败原因:"; if (httpParamObjects.length != 0) { if (httpParamObjects[0] instanceof String) { TcpCont tcpCont = ProtocolUtil.getTcpCont(StringUtils.isEmpty(httpParamObjects[0]) ? null : httpParamObjects[0].toString()); if (tcpCont != null) { transactionId = tcpCont.getTransactionId(); serviceCode = tcpCont.getServiceCode(); obj = ProtocolUtil.createResponseJsonString(transactionId, serviceCode, resultMsg + e, null); return obj; } } } obj = ProtocolUtil.createResponseJsonString(transactionId, serviceCode,resultCode, resultMsg + " 报文格式错误 " + e, null); }finally { String saveServiceLogFlag = CodeMapUtil.getDynamicConstantValue(ConstantUtil.SAVE_SEVICE_LOG_FLAG); if(params instanceof Object[] && params.length > 0){ logger.debug("------------------请求参数[SmoServiceAspect.aroundMethod]:"+params[0]); //调用保存请求报文队列 if("ON".equals(saveServiceLogFlag)){ } } if(obj instanceof String){ logger.debug("------------------返回参数[SmoServiceAspect.aroundMethod]:"+obj); //调用保存返回报文队列 if("ON".equals(saveServiceLogFlag)){ } } } return obj; } */ }