问题现象:

今天在搭建微服务架构项目后,启动某个微服务时,遇到了如下报错:

java.lang.IllegalArgumentException: Not a managed type: class com.xxx.xxx.model.xxx

微服务启动报错:java.lang.IllegalArgumentException: Not a managed type: class com.xxx.xxx.model.User


问题分析:

根据报错信息可知,这是因为找不到model下某个实体类,也就是说没有找到匹配的目录路径!

这是因为在微服务架构中,当前微服务会在当前路径下去匹配这个路径:

这是我的dao接口:

微服务启动报错:java.lang.IllegalArgumentException: Not a managed type: class com.xxx.xxx.model.User

在继承jpa时,要传入实体类,而这个实体类是放在另一个微服务中的,因此当指定了路径之后启动,发现在当前微服务下找不到,因此需要在启动类中,指定实体类的包路径(如:

@EntityScan(basePackages={"com.stephen.shopcommon"})

), 配置完之后,就会去整个项目中匹配这个路径,因此就可以找到对应的微服务的实体类路径了.


解决方法:

在当前启动类中添加@EntityScan注解,在basePackages属性中配置实体类所引用的微服务路径:

微服务启动报错:java.lang.IllegalArgumentException: Not a managed type: class com.xxx.xxx.model.User

启动成功:

微服务启动报错:java.lang.IllegalArgumentException: Not a managed type: class com.xxx.xxx.model.User

相关文章:

  • 2021-05-19
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-04
  • 2022-12-23
  • 2022-01-21
猜你喜欢
  • 2022-12-23
  • 2021-06-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-12
相关资源
相似解决方案