JSON.toJSONString(joinPoint.getArgs())报错getOutputStream() has already been called for this response

nested exception is java.lang.IllegalStateException: It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false)] with root cause

private void addOperationLog(JoinPoint joinPoint, Object res, int time) {
MethodSignature signature = (MethodSignature)joinPoint.getSignature();
MpOpLog operationLog = new MpOpLog();
operationLog.setRunTime(time);
operationLog.setReturnVal(JSON.toJSONString(res));
System.out.println("================:"+joinPoint.toString());
Object[] args = joinPoint.getArgs();
Object[] arguments = new Object[args.length];
System.out.println("================:"+args);
for (int i = 0; i < args.length; i++) {
if (args[i] instanceof ServletRequest || args[i] instanceof ServletResponse || args[i] instanceof MultipartFile) {
// ServletRequest can not be serialized, excluded from the participation in, otherwise reported abnormal: java.lang.IllegalStateException: Illegal to Call It IS the this Method, IF at The Current Asynchronous Request IS not in the MODE (IE isAsyncStarted () returns A false)
// ServletResponse can not be excluded from the sequence of parameters, otherwise reported abnormal: a java.lang.IllegalStateException: the getOutputStream () Called for the this has already been Response
Continue;
}
arguments [I] = args [I];
}
String paramter = "";
IF (! = null arguments) {
the try {
paramter = JSONObject.toJSONString (arguments);
} the catch (Exception E) {
paramter arguments.toString = ();
}
}
System.out.println ( "======== ========: "+ paramter.toString ());
operationLog.setArgs (paramter.toString ());
operationLog.setOpTime(new Date());
operationLog.setMethod(signature.getDeclaringTypeName() + "." + signature.getName());

String uerid = AppUtil.getJwtParam("userId");
String userName = AppUtil.getJwtParam("userName");

operationLog.setUserId(StringUtils.defaultIfBlank(uerid, "anonymous"));
operationLog.setUserName(StringUtils.defaultIfBlank(userName, "anonymous"));

OpLog annotation = signature.getMethod().getAnnotation(OpLog.class);
if (annotation != null) {
operationLog.setId(UUID.randomUUID().toString().replace("-", ""));
operationLog.setLevel(annotation.level());
operationLog.setContent(getDetail(((MethodSignature)joinPoint.getSignature()).getParameterNames(),
arguments, annotation));
operationLog.setOpType(annotation.operationType().getValue());
operationLog.setOpUnit(annotation.operationUnit());
}

tmpOpLogService.insert(operationLog);
}

Guess you like

Origin www.cnblogs.com/hikoukay/p/11305282.html