所述
HttpSession对象本身可以在多个线程中使用(但 不是
线程安全的,因此必须被同步)。但是,Spring正在做一些额外的魔术,例如,当您具有范围
session广阔的bean时。即它
ThreadLocal在下面使用绑定当前会话与线程。
我不知道你是什么确切的情况,但显然春尝试检索
HttpSession从这个
ThreadLocal当你在另一个线程-这显然失败。
解决方案很简单-在
@Async方法中提取您需要的会话属性,然后直接传递它们。顺便说一下,这是更好的设计-
避免传递
HttpSession对象,因为这会使测试变得更加困难,并且您的代码将来极少被重用。



