在使用反射进行调用controller的查询方法进行导出时,被框架配置的web拦截器拦截,

@Pointcut("execution(public * com.meditrusthealth.fast..controller.*.*(..))")public void fastExpression() {}```
真正拦截器的作用是使controller层只能被web进行调用;
但是因为表达式public * com.meditrusthealth.fast..controller.*.*(..)),只能拦截到controller下的类及类里边的所有方法,
在开发中我们对controller是按照功能进行划分的,"controller.*.*(..)"并不能像"controller..*.*(..)"这样拦截到我们的子孙包,
所以导致我们开发的公用导出方法一直隐藏一个问题.直到有一次开发的controller直接放在了controller包下,在这个controller中使用了我们的导出公用方法,
此时问题就暴露出来了,我们正常查询,正常导出都可以,但是当我们的导出大批量数据需要使用异步去处理时,调用invoke方法失败了,
通过排查发现web拦截器中下边的代码:```java@Around("fastExpression()")public Object argsLog(ProceedingJoinPoint point) throws Throwable {Stopwatch watch = Stopwatch.createStarted();String methodName = point.getSignature().getName();RequestAttributes ra = RequestContextHolder.getRequestAttributes();if (ra == null) {return new Object();}

这是异常出现的地方,RequestAttributes丢失了或者说被删除了.

解决方法:
1,使用我们公用导出方法直接调用service中的方法;
2,将我们的controller放到controller下包中;
3,既然RequestAttributes不存在了,那我们就在调用invoke方法之前先自己判断一下,如果不存在的话,我们自己给他设置进入;

因为以上两种方法只是让使用者去进行适配调整,并不妥当,最终我们使用了第三种方案进行处理.

 RequestAttributes attributes = RequestContextHolder.getRequestAttributes();if (attributes == null){RequestContextHolder.setRequestAttributes(requestAttributes);}

问题: InvocationTargetException相关推荐

  1. InvocationTargetException异常解析

    InvocationTargetException异常由Method.invoke(obj, args...)方法抛出.当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收. 示例: [jav ...

  2. java.lang.reflect.InvocationTargetException异常

    java.lang.reflect.InvocationTargetException异常 参考文章: (1)java.lang.reflect.InvocationTargetException异常 ...

  3. Weka java.lang.reflect.InvocationTargetException

    在用Weka导入数据的时候报 java.lang.reflect.InvocationTargetException 错误,Weka运行包没有给出详细的错误信息,无法查到. 直接调试Weka源码,发现 ...

  4. java.lang.reflect.InvocationTargetException 的惨痛教训

    记录发布webservice漏发内部类文件导致异常java.lang.reflect.InvocationTargetException 的惨痛教训 我的一个实现类中调用了一个内部类,在本地测试正常, ...

  5. java invocationtarget,启动工程报java.lang.reflect.InvocationTargetException的解决详解

    今天下了一个工程,启动时报了下面这个错误 2009-11-26 17:18:12 org.apache.catalina.core.StandardHost start 信息: XML validat ...

  6. java invocationtarget,Java异常处理之java.lang.reflect.InvocationTargetException

    1. 前言 在我们使用Java的反射API时,我们经常会遇到java.lang.reflect.InvocationTargetException异常,在本教程中,我们将通过一个简单的实例来了解它以及 ...

  7. Java异常处理之InvocationTargetException(反射异常)

    Java异常处理之InvocationTargetException(反射异常) 参考文章: (1)Java异常处理之InvocationTargetException(反射异常) (2)https: ...

  8. soupui :java.lang.reflect.InvocationTargetException

    问题:soup模拟接口,返回错误.但是控制台也没日志. soupui :java.lang.reflect.InvocationTargetException 原因:环境少包或者程序 转载于:http ...

  9. InvocationTargetException异常

    package com.smbea.demo.reflect;/*** 越界异常* @author hapday* @date 2017年1月20日 @time下午7:59:01*/ public c ...

  10. Javafx 报错Exception in Application start method java.lang.reflect.InvocationTargetException

    Javafx 报错Exception in Application start method java.lang.reflect.InvocationTargetException 代码如下: imp ...

最新文章

  1. Javascript学习总结三(Array对象的用法)
  2. [转]批处理for命令使用指南
  3. php循环输出标题,php-如何通过循环在同一标题下分组数据
  4. 闲谈简单设计(KISS)疑惑
  5. spring(6) 渲染web视图
  6. HTML+CSS+JS实现 ❤️圣诞抓礼物小游戏❤️
  7. MYSQL 【汇总数据】 【分组数据】 学习记录
  8. Linux shell中在vim打开的文件中查找关键字
  9. Ⅴ0还有别的方法设置图案吗_水冷空调扇如何使用 水冷空调扇使用方法介绍【图文】...
  10. 中国范围NPP-VIIRS逐年夜间灯光数据(2013-2020年)
  11. xcode object c 函数注释
  12. 介绍一个可以轻松下载病毒样本的数据库
  13. Flutter之以阿里云图标库为例,使用多色图标
  14. 基于HFSS设计一种新型圆极化天线
  15. 这种人生最美的场面吸引着千万男孩女孩的憧憬和向往
  16. AutoAugment中16种数据增强方法可视化直观展示
  17. java中测代码段运行时间及内存的方法
  18. python在地图上画路线_使用Python和Perl绘制北京跑步地图
  19. ubuntu 终端常用命令大全
  20. Codeforces 332B Maximum Absurdity(DP+前缀和处理)

热门文章

  1. Python分析9万条数据告诉你复仇者联盟谁才是绝对C位
  2. Linux 查看文件类型
  3. MarkDown简单语法入门
  4. MediaProjection与MediaRecorder实现录屏
  5. php获取年龄、属相、星座
  6. 回顾各种编码的创新和异同-MEPG2, MPEG4, H.264/AVC以及H.265/HEVC比较
  7. Java设计模式:代理
  8. 计算机基础(27)——办公助手之电脑快捷键
  9. 用python画简单雪花剪纸步骤图解_简单雪花剪纸步骤图解
  10. [机缘参悟-67]:深度思考-万物的基础架构:物质组成、运行规律、化合规律