关于项目采用dubbo时调用api接口时报Error creating bean with name ‘XXXXXX’问题
新做一个项目时遇到定义的接口找不到,运行时会报org.springframework.beans.factory.UnsatisfiedDependencyException:Error creating bean with name ‘XXXXXX’错误
具体如下
开始以为是接口没有添加@service导致,可是排查以后没有错误,那么为什么会出现找不到的问题呢?
排查好久终于找到问题所在:
项目是采用dubbo,对外提供一个API,若是要调用接口,必须是通过API接口,那么我也是调用API接口的为什么不能呢?
这是因为还必须在dubbo中进行声明,在服务器端声明所需要的接口,这样dubbo才可以调用这个接口,在客户端也同样需要在配置中声明这个接口,你才可以使用这个接口,不然会抛出org.springframework.beans.factory.UnsatisfiedDependencyException:Error creating bean with name ‘XXXXXX’错误
配置文件如下:
服务器端:
<dubbo:service interface="com.crt.settlement.api.facade.tax.EbusinessGoodTaxFacade" ref="ebusinessGoodTaxFacade" validation="true" version="${settlement.dubbo.service.version}"/>
客户端
<dubbo:reference consumer="settlementConsumer" protocol="dubbo" id="ebusinessGoodTaxFacade" interface="com.crt.settlement.api.facade.tax.EbusinessGoodTaxFacade" registry="settlementRegistry" timeout="20000" check="false" version="${settlement.dubbo.service.version}"/>