问题:ServletRequest、ServletResponse不能被序列化
使用google.gson会OOM
使用alibaba.fastjson会抛出非法参数异常
原因:ServletRequest、ServletResponse是Interface
解决方案:
private Object[] excludeJoinPointArgs(JoinPoint joinPoint) {
Object[] args = joinPoint.getArgs();
Stream<?> stream = ArrayUtils.isEmpty(args) ? Stream.empty() : Arrays.asList(args).stream();
List<Object> logArgs = stream.filter(arg -> (!(arg instanceof ServletRequest)
&& !(arg instanceof ServletResponse)
&& !(arg instanceof MultipartFile))).collect(Collectors.toList());
if (logArgs.isEmpty()) {
return null;
}
return logArgs.toArray();
}