这阵子一直在修改之前同事遗留下来的老代码,今天遇到了这样一个错误:

Error querying database.  Cause: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.
### The error may exist in com/xxx/service/xxx/mapper/XXXMapper.java (best guess)
### The error may involve com.xxx.service.xxx.mapper.XXXMapper.selectXXX
### The error occurred while executing a query
### Cause: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.] with root cause
java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.

这错误表面上一看很简单,就是数据库的配置问题,肯定是哪里配置错了。于是开始各种对配置,核对了properties文件、DataSourceConfig.java配置文件,都没有问题,于是开始百度。
百度得到的答案几乎是一水地说SpringBoot1.0配置项是url,2.0配置项是jdbc-Url,但是并没有什么用。
当时的项目的架构是十几个项目,大概架构如下,简略一些可以以3个项目概括吧:
项目A、项目B,和项目大C。项目A和B打成jar包,放到项目大C下,启动项目大C对外提供服务(实际的项目复杂度远高于此,十几个项目相互交错错综复杂,令人头疼不已)。
然后项目A和项目B两者互不依赖,但是两者需要用到一个相同的Mapper,于是当时两个项目下都有如下Mapper文件:

项目大C依赖项目A、B之后,启动并不会报错,但是只要调用到这个Mapper的方法,就会报文章开头的那个错误。
究其原因,重点不在于配置项,而在于:

看到best guess就明白了,程序在猜测我到底想使用哪个Mapper,因为两个项目都有,而且路径和名称都相同。
于是想到的第一个解决办法就是把名称改掉。
但是改掉之后依然报同样的错误,可见直修改Mapper的名称行不通。
于是干脆把路径和名称全部改掉。我把Mapper所在路径修改到其他路径下,然后把名称也改成和之前不一样的名称。然后这时候不要忘记改一下DataSourceConfig.java的扫包配置,否则找不到了:

@Configuration
@MapperScan(basePackages = {"com.xxx.service.xxx.mapper", "com.xxx.xxx.xxx.mapper.xxx"},sqlSessionFactoryRef = "xxxSqlSessionFactory")
public class DataSourceConfig {}

两份Mapper文件,不同路径,不同名称,basePackages配成两个,启动项目,再次请求,返回成功。
至此这个错误就成功解决了。


喜欢本文的朋友不要忘记点一个免费的赞哦,你的赞将是我最大的动力。

IllegalArgument dataSource or dataSourceClassName or jdbcUrl is required.XXXMapper.java (best guess)相关推荐

  1. IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required

    在springboot配置多数据源的时候报错: 2019-04-10 17:44:44.448 ERROR 12164 --- [ XNIO-2 task-20] com.zaxxer.hikari. ...

  2. HikariPool-1 - dataSource or dataSourceClassName or jdbcUrl is required.解决方案

    故障错误 最近在使用Spring Boot 2.x with H2 Database 以及JPA整合一个项目的时候出现了下面这一个故障: ERROR 21448 --- [ main] com.zax ...

  3. 成功解决:Activiti HikariPool-1 - jdbcUrl is required with driverClassName.

    问题描述 报错内容如下: 2022-03-13 23:17:25.065 ERROR 12888 --- [ main] com.zaxxer.hikari.HikariConfig : Hikari ...

  4. Spring Boot 2.0 多数据源编程 jdbcUrl is required with driverClassName

    转载:https://my.oschina.net/chinesedragon/blog/1647846 Spring Boot 2.0 多数据源编程 在Spring Boot 1.5.x之前,多数据 ...

  5. Failed to convert property value of type java.lang.String to required type java.lang.Integer for pro

    Failed to convert property value of type java.lang.String to required type java.lang.Integer for pro ...

  6. Failed to convert value of type 'java.lang.String' to required type 'java.util.Date

    异常原因:Controller层获取JSP页面请求参数是String类型,而在Controller层接收时使用Date类型,属于方法参数类型不匹配异常 警告: Failed to bind reque ...

  7. spring:Failed to convert property value of type ‘java.lang.String‘ to required type ‘java.util.Date‘

    前言 springboot有接口日期转换的经典问题,给Entity加@JsonFormat解决了输出json日期格式的输入输出问题,但是解决不了非@RequestBody/也就是普通表单提交的日期格式 ...

  8. Cannot convert value of type ‘java.lang.String‘ to required type ‘java.util.Map‘ for property ‘param

    问题描述 若依中使用feign进行远程调用,在get请求中使用@SpringQueryMap映射对象时,映射对象的父类中带有Map<String, Object>类型的params属性时, ...

  9. Failed to convert value of type ‘java.lang.String‘ to required type ‘java.util.Date‘;

    在Java的controller中添加一个方法即可解决 /*** 解决:Failed to convert value of type 'java.lang.String' to required t ...

最新文章

  1. jvm性能调优实战 - 39一次大促导致的内存泄漏和Full GC优化
  2. seo需要处理页面html,为什么单页面的seo不友好?如何解决这一问题?
  3. java bean 工厂模式_深入理解Java的三种工厂模式
  4. Spring Boot+Vaadin 14项目初始化
  5. 用户名登陆时如何在后面加一个小红*_最后一个登陆框引起的血案
  6. 原生js实现分页效果(带实例)
  7. 计算机怎么打不开照相机图片,Win10系统相机打不开怎么办-电脑自学网
  8. 机器学习误差计算及评估指标
  9. 图片默认底部3px缝隙
  10. SHELL第一天课堂练习
  11. Container及其内部进程监控剖析
  12. LZJ的Python第二次打卡
  13. 药店微信小程序的功能
  14. 让人眼花缭乱的视错觉,太酷炫了!
  15. 追风筝的人 第九章
  16. kotlin中的var和val与编译时常量
  17. 【计算机视觉】opencv姿态解算4 视觉导航 单目特征检测与实时位姿
  18. 程序员北漂没钱整租,如何爱上合租?
  19. python爬虫爬取新闻实战01:小白如何迅速学会爬虫爬取上千条新闻
  20. 鸡兔同笼问题,假设鸡兔同笼,上有35个头,下有94只足,问鸡兔分别有几只?

热门文章

  1. Window10 磁盘如何分区(扩展卷操作)
  2. 业务中立_反对网络中立性威胁开源社区的生存
  3. html+CSS之百度首页练习
  4. 揭秘“白帽黑客”特训 入职可获年薪20万以上
  5. MacOS Monterey Beta升or不升?六大亮点、避坑指南,看这篇就够了!
  6. 北京大兴国际机场首家麦当劳开业
  7. 如果。我好愛你。我好想你。
  8. 微信小程序云数据库定时清空(云函数定时触发)
  9. 安卓混合开发——原生Java和H5交互,保证你一看就懂!
  10. 面试心经01--大数据开发工程师