diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index 2834719d2..9a57e0173 100644 --- a/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/lms/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -42,8 +42,10 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Parameter; +import java.lang.reflect.UndeclaredThrowableException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -106,22 +108,27 @@ public class LogAspect { SysLog log = new SysLog("INFO", System.currentTimeMillis() - currentTime.get()); currentTime.remove(); logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), joinPoint, log); - }catch (Exception ex) { + }catch (Throwable ex) { StringBuffer errorStack = new StringBuffer(); errorStack.append("
【异常堆栈:"); - String errorMsg = ex.getMessage(); int x = 0; + if (ex instanceof UndeclaredThrowableException){ + ex = ((UndeclaredThrowableException) ex).getUndeclaredThrowable(); + if (ex instanceof InvocationTargetException){ + ex = ((InvocationTargetException) ex).getTargetException(); + } + } StackTraceElement[] stackTrace = ex.getStackTrace(); if (stackTrace != null && stackTrace.length > 0) { for (StackTraceElement stack : stackTrace) { x++; errorStack.append(stack.toString().replaceAll("<", ">")).append("
"); - if (x > 10) { + if (x > 15) { break; } } } - log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}] {}", url, errorMsg, params, errorStack.append("】").toString()); + log.error("[-requestError-][请求接口:{}]【异常信息:{}】[请求参数:{}] {}", url, ex.getMessage(), params, ThrowableUtil.getStackTrace(ex)); throw ex; } finally { log.info("[--response--][请求接口:{} 执行结束][耗时:{}s]", url, (System.currentTimeMillis() - comming) / 1000); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 1daae95ea..19669dec1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -184,7 +184,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task") + .query("task_id = '" + task_id + "'").uniqueResult(0); // 任务处理类 String processing_class = taskObj.getString("handle_class"); //1:执行中,2:完成 ,3:acs取消 @@ -193,7 +194,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.isNotEmpty(car_no)) { WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("car_no", car_no),"task_id = '" + task_id + "'"); } - String message = ""; String status = ""; if ("1".equals(acs_task_status)) { status = TaskStatusEnum.EXECUTING.getCode(); @@ -217,10 +217,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { Method m = obj.getClass().getDeclaredMethod("updateTaskStatus", JSONObject.class, String.class); m.invoke(obj, row, status); } catch (Exception e) { - e.printStackTrace(); WQLObject.getWQLObject("SCH_BASE_Task").update(MapOf.of("remark",DateUtil.now()+"更新"+status+"失败:"+e.getMessage()),"task_id = '" + task_id + "'"); - message = e.getMessage(); - throw new BadRequestException(message); + throw e; } } else { throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!");