springboot项目启动报错:dynamic-datasource can not find primary datasource

项目启动报错信息

bash 复制代码
Caused by: com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException: dynamic-datasource can not find primary datasource
	at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.determinePrimaryDataSource(DynamicRoutingDataSource.java:91)
	at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.getDataSource(DynamicRoutingDataSource.java:120)
	at com.baomidou.dynamic.datasource.DynamicRoutingDataSource.determineDataSource(DynamicRoutingDataSource.java:78)
	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:48)
	at com.baomidou.dynamic.datasource.ds.AbstractRoutingDataSource$$FastClassBySpringCGLIB$$dffddd61.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice.invoke(SeataAutoDataSourceProxyAdvice.java:57)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
	at com.baomidou.dynamic.datasource.DynamicRoutingDataSource$$EnhancerBySpringCGLIB$$606bf0df.getConnection(<generated>)
	at io.seata.rm.datasource.DataSourceProxy.init(DataSourceProxy.java:101)
	at io.seata.rm.datasource.DataSourceProxy.<init>(DataSourceProxy.java:96)
	at io.seata.rm.datasource.DataSourceProxy.<init>(DataSourceProxy.java:81)
	at io.seata.spring.annotation.datasource.DataSourceProxyHolder.createDsProxyByMode(DataSourceProxyHolder.java:97)
	at io.seata.spring.annotation.datasource.DataSourceProxyHolder.putDataSource(DataSourceProxyHolder.java:88)
	at io.seata.spring.annotation.datasource.SeataDataSourceBeanPostProcessor.postProcessAfterInitialization(SeataDataSourceBeanPostProcessor.java:58)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:455)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
	... 100 common frames omitted

报错原因分析

1.可能是引入了多数据源又没有使用,导致的报错

解决方案

注释掉上边两个依赖

bash 复制代码
		<!-- Druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <!-- Dynamic DataSource -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>${dynamic-ds.version}</version>
        </dependency>

2.我的项目中使用了多数据源,所以这种解决方式不可行

查看maven的配制文件,看是否加载了配制信息

看这块是否选择了正确的环境。

3.我的项目中使用的是本地环境,也就是local,然后我就去跟了下代码


发现这里报错500,报错信息为:config data not exist。

说明没有获取到nacos上的配制文件,我又去检查了下pom.xml文件。

查看后发现本地环境上配置的nacosNamespace不对,更改之后启动成功。

4.如果pom.xml文件能跟nacos对应上,但是启动报错,可能是有缓存,可重启nacos

相关推荐
2501_921649497 分钟前
免费获取股票历史行情与分时K线数据 API
开发语言·后端·python·金融·数据分析
乐观甜甜圈8 分钟前
JDK8 中线程实现方法与底层逻辑详解
java
尤物程序猿12 分钟前
Java如何不建表完成各种复杂的映射关系(鉴权概念、区域概念、通用概念)
java·开发语言
cike_y24 分钟前
JSP内置对象及作用域&双亲委派机制
java·前端·网络安全·jsp·安全开发
也许是_27 分钟前
大模型应用技术之 Spring AI 2.0 变更说明
java·人工智能·spring
xunyan623441 分钟前
面向对象(下)-内部类的分类
java·学习
巴拉巴拉~~1 小时前
KMP 算法通用进度条组件:KmpProgressWidget 多维度 + 匹配进度联动 + 平滑动画
java·服务器·前端
Yeniden1 小时前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
景川呀1 小时前
Java的类加载器
java·开发语言·java类加载器