生成的后端代码,swagger调试直接报空指针 DataScopeModel.getResourceCode()

Blade 未结 2 115
wxmoon
wxmoon 剑侠 2025-06-06 15:02

Caused by: java.lang.NullPointerException: Cannot invoke "org.springblade.core.datascope.model.DataScopeModel.getResourceCode()" because "dataScope" is null

at org.springblade.system.cache.DataScopeCache.getDataScopeByMapper(DataScopeCache.java:73) ~[classes/:na]

at org.springblade.system.handler.DataScopeModelHandler.getDataScopeByMapper(DataScopeModelHandler.java:50) ~[classes/:na]

at org.springblade.core.datascope.handler.BladeDataScopeHandler.sqlCondition(BladeDataScopeHandler.java:59) ~[blade-starter-data-scope-4.5.0.RELEASE.jar:4.5.0.RELEASE]

at org.springblade.core.datascope.interceptor.DataScopeInterceptor.intercept(DataScopeInterceptor.java:116) ~[blade-starter-data-scope-4.5.0.RELEASE.jar:4.5.0.RELEASE]

at org.springblade.core.mp.plugins.QueryInterceptorExecutor.exec(QueryInterceptorExecutor.java:57) ~[blade-starter-mybatis-4.5.0.RELEASE.jar:4.5.0.RELEASE]

at org.springblade.core.mp.plugins.BladePaginationInterceptor.willDoQuery(BladePaginationInterceptor.java:61) ~[blade-starter-mybatis-4.5.0.RELEASE.jar:4.5.0.RELEASE]

at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75) ~[mybatis-plus-extension-3.5.8.jar:3.5.8]

at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59) ~[mybatis-3.5.16.jar:3.5.16]

at jdk.proxy2/jdk.proxy2.$Proxy194.query(Unknown Source) ~[na:na]

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:154) ~[mybatis-3.5.16.jar:3.5.16]


2条回答
  • 2025-06-06 15:35

    你的自定义服务加上这个依赖试试

    CleanShot20250606153541@2x.png


    如果你的服务用不到数据权限,可以配置把它关闭

    blade.data-scope.enabled=false

    作者追问:2025-06-06 16:18

    图像 8.png

    我调试时发现datascopeclient对象能获取到,而且是system里的,但是执行getDataScopeByMapper之后就直接到fallback里了。system的日志我看了没看到什么异常

    回答: 2025-06-06 16:20

    blade-system、blade-log服务本地都启动没

    作者追问:2025-06-06 16:27

    我在讨论里说了,本地只启动了这个新服务,其他都是容器里运行

    回答: 2025-06-06 16:28

    这几个服务本地启动后再看下什么结果,不要上来就多环境给自己上强度,情况复杂了也不好排查。遇到问题应该先尽可能排除掉环境影响,都本地启动确认没问题了再多环境启动和部署。我给你的两种方案也都试一下。

    0 讨论(2)
  • 2025-06-06 18:20

    没有多环境,本地的服务和其他容器都是访问的同一个nacos,用的nacos中配置的的数据库、缓存等配置

    作者追问:2025-06-06 18:28

    本机服务的ip段和docker服务子网的ip段不能互联,就已经是两套环境了。如果不按照我们的排查步骤来,你也完全可以按照自己的节奏来排查

    0 讨论(0)
代码语言
提交回复