一、该问题的重现步骤是什么?
1. 项目集成了dubbo, 服务调用dubbo的rpc, rpc又调用了数据权限的feign
2. 然后就报错了,错误日志如下
二、你期待的结果是什么?实际看到的又是什么?
期待结果: dubbo可以正常调用feign
实际结果: dubbo调用feign异常
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex3.1.0 企业版 Oracle linux 8.5, dubbo版本2.7.22
四、请提供详细的错误堆栈信息,这很重要。
java.lang.RuntimeException: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
... 54 more
Caused by: java.lang.NullPointerException
at org.springblade.system.cache.DataScopeCache.getDataScopeByMapper(DataScopeCache.java:64)
at org.springblade.system.handler.DataScopeModelHandler.getDataScopeByMapper(DataScopeModelHandler.java:41)
at org.springblade.core.datascope.handler.BladeDataScopeHandler.sqlCondition(BladeDataScopeHandler.java:50)
at org.springblade.core.datascope.interceptor.DataScopeInterceptor.intercept(DataScopeInterceptor.java:107)
at org.springblade.core.mp.plugins.QueryInterceptorExecutor.exec(QueryInterceptorExecutor.java:48)
at org.springblade.core.mp.plugins.BladePaginationInterceptor.willDoQuery(BladePaginationInterceptor.java:45)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
at com.sun.proxy.$Proxy321.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
... 61 more
五、问题已解决: rpc请求时缺少http的header, 写个dubbo过滤器, 把header传递过去即可。
扫一扫访问 Blade技术社区 移动端