美文网首页
异步调用Feign接口空指针问题

异步调用Feign接口空指针问题

作者: 小石读史 | 来源:发表于2022-12-29 11:31 被阅读0次

    异步调用Feign接口空指针问题原因:

    Feign接口的Request 默认是主线程和子线程不共享的,当异步调用Feign接口会因为获取不到ServletRequestAttributes报空指针。

    解决方案:
    我们先获取到当前请求,再分享给子线程。
    首先获取attributes :

     RequestAttributes attributes = RequestContextHolder.getRequestAttributes();//防止fegin获取不到当前请求
    

    在线程中设置attributes :

    RequestContextHolder.setRequestAttributes(attributes);
    

    实例代码:

    ExecutorService executorService = Executors.newSingleThreadExecutor();
                List<ExportFamilyMasterImplForm> finalList = list;
                RequestAttributes attributes = RequestContextHolder.getRequestAttributes();//防止fegin获取不到当前请求
                executorService.execute(()->{
                    RequestContextHolder.setRequestAttributes(attributes);
                    List<ExportFamilyMasterForm>  excelList = familyMemberService.dataTransformation(finalList);
                });
    

    相关文章

      网友评论

          本文标题:异步调用Feign接口空指针问题

          本文链接:https://www.haomeiwen.com/subject/wurtcdtx.html