项目为dubbo+springmvc+spring+mybatis
贴上项目目录 如下:
baidu-dubbo为父项目;
其他的都是子项目;
其中core项目 和 ifc 项目为jar包 core项目是项目自己的一些接口 ifc是暴露出来的公共接口
service项目和web项目是war包; service是业务处理层 web是主要是负责页面跳转逻辑的
core项目中引入了ifc项目 service中也引入了ifc项目 web中引入了core和ifc项目
这篇文章主要讲一个操作性的错误:
项目是公司的项目从git上拉取下来的 配置都没问题
别的同事是正常启动的
可是我启动就报错 : No bean named ' is defined;
按照以下逻辑排查了错误:
1 类名是否写错 , 项目找不到这个类
2 类名没错 , 但是对应的bean没有加上注解
3 配置文件里面扫描的包名路径是否正确 , 路径不正确扫描不到bean 肯定加载不到
4 dubbo的配置一定要放在spring扫描加载所有bean之后 , 这样dubbo调用服务才能找到对应的服务
几步排查基本可以找到错误 :
可是以上问题我的并没有出现
于是 我想起来了一个可能忽视的原因:
因为是父子项目 运行的时候我需要把jar包的项目install到本地仓库中 否则是找不到对应的引用的
于是我对两个jar包项目右键====>Run As====>maven clean =====>maven install
但是此时第二个jar包项目 install一直失败 ,
百度发现原因: 对子项目maven clean maven install之前必须对父项目 clean install
于是我按照顺序 依次clean install -->父项目 --->ifc项目(因为是core引用了ifc,所以要先install项目ifc)--->core项目 成功运行 不再报错