起新线程调用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();
上一篇 下一篇

猜你喜欢

热点阅读