今天,碰到一个异常,“Caused by: java.lang.ClassNotFoundException: org.apache.shardingsphere.core.yaml.config.sharding.YamlShardingRuleConfiguration”。
找相关错误,Stack Overflow上给的错误解释,说是配置文件错误。并认为原因为原配置文件为“spring.shardingsphere.datasource.ds0.url” 应该改为“spring.shardingsphere.datasource.ds0.jdbc-url”。我检查了下,发现所有的配置文件格式均是正常的。
然后,陷入了迷茫。
后来发现,Maven库存在依赖冲突,因为我的Maven库(pom.xml)依赖了spring-cloud-starter-alibaba-nacos-discover,然后发现该库的版本所对应的版本为unknown。然后,修改该库的版本为2.2.1.RELEASE后。发现第二个问题,版本库还是冲突。发现版本库存在spring-cloud-commons库冲突。于是,把pom.xml里的spring-cloud-commons相关注释注释掉。
然后,程序运行正常。
原来,是文件依赖出问题了。解决好相关依赖即让程序运行正常。