起新线程调用web接口方法报错:No thread-bound
2022-08-31 本文已影响0人
Bigglesworth
报错场景
我想在controller里,起新线程调用同类下的另一个web接口方法,直接使用
new Thread(()->{
this.funcB();
}).start();
因为funcB也会用到session里的信息,所以会报错拿不到session。
解决方法
在起新线程前,添加子线程共享session即可
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(servletRequestAttributes,true);//设置子线程共享
new Thread(()->{
this.funcB();
}).start();