java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java异步调用Feign

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

作者:小石读史

这篇文章主要为大家介绍了java异步调用Feign接口空指针问题解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

异步调用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);
            });

以上就是java异步调用Feign接口空指针问题解决的详细内容,更多关于java异步调用Feign的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文