一、该问题的重现步骤是什么?
1、blade-user服务去掉了@NonDS,目的blade_user表分库,使用租户指定数据源的blade_user表,
登录已经分库的租户用户,登录报错
自定义服务、blade-flow、blade_resource服务都可以正常分库,但是blade_user服务分库登录失败
2、nacos配置为:
二、你期待的结果是什么?实际看到的又是什么?
一个租户一个库,可以正常登录使用
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex版本为2.9.0.RELEASE
四、请提供详细的错误堆栈信息,这很重要。
lade-user服务报错
登录报错org.springblade.core.tenant.exception.TenantDataSourceException: Incorrect result size: expected 1, actual 0
2025-08-13 02:24:21.337 ERROR 11584 --- [ XNIO-1 task-1] o.s.s.o.provider.endpoint.TokenEndpoint : Handling error: ClassCastException, class java.util.LinkedHashMap cannot be cast to class org.springblade.system.user.entity.UserInfo (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; org.springblade.system.user.entity.UserInfo is in unnamed module of loader 'app')
blade-auth服务报错
未走到userClient.userInfo接口就报错了
025-08-13 02:34:43.771 ERROR 11584 --- [ XNIO-1 task-1] o.s.core.cloud.feign.BladeFeignFallback : BladeFeignFallback:[org.springblade.system.user.feign.IUserClient.userInfo] serviceId:[blade-user] message:[[500 Internal Server Error] during [GET] to [http://blade-user/client/user-info?tenantId=101505&account=admin] [IUserClient#userInfo(String,String)]: [{"code":500,"success":false,"data":{},"msg":"Incorrect result size: expected 1, actual 0"}]]
2025-08-13 02:34:43.772 ERROR 11584 --- [ XNIO-1 task-1] o.s.s.o.provider.endpoint.TokenEndpoint : Handling error: ClassCastException, class java.util.LinkedHashMap cannot be cast to class org.springblade.system.user.entity.UserInfo (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; org.springblade.system.user.entity.UserInfo is in unnamed module of loader 'app')
java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class org.springblade.system.user.entity.UserInfo (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; org.springblade.system.user.entity.UserInfo is in unnamed module of loader 'app')
at org.springblade.auth.granter.CaptchaTokenGranter.getOAuth2Authentication(CaptchaTokenGranter.java:77) ~[classes/:na]
at org.springframework.security.oauth2.provider.token.AbstractTokenGranter.getAccessToken(AbstractTokenGranter.java:72) ~[spring-security-oauth2-2.3.5.RELEASE.jar:na]
at org.springframework.security.oauth2.provider.token.AbstractTokenGranter.grant(AbstractTokenGranter.java:67) ~[spring-security-oauth2-2.3.5.RELEASE.jar:na]
at org.springframework.security.oauth2.provider.CompositeTokenGranter.grant(CompositeTokenGranter.java:38) ~[spring-security-oauth2-2.3.5.RELEASE.jar:na]
at org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.postAccessToken(TokenEndpoint.java:132) ~[spring-security-oauth2-2.3.5.RELEASE.jar:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:517) ~[jakarta.servlet-api-4.0.4.jar:4.0.4]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.15.RELEASE.jar:5.2.15.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) ~[jakarta.servlet-api-4.0.4.jar:4.0.4]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.1.7.Final.jar:2.1.7.Final]
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.1.7.Final.jar:2.1.7.Final]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) ~[spring-security-web-5.3.9.RELEASE.jar:5.3.9.RELEASE]
五、若有更多详细信息,请在下面提供。
扫一扫访问 Blade技术社区 移动端