在注册中心找不到对应的服务
- 描述:在用dubbo框架搭建项目XXXXXX,以zookeeper为注册中心进行测试,使用tomca7:run运行
- 错误原文:
java.lang.IllegalStateException: Failed to check the status of the service
com.XXXXXX.sellergoods.service.BrandService. No provider available for the service
com.XXXXXX.sellergoods.service.BrandService from the url
zookeeper://192.168.12.161:2181/com.alibaba.dubbo.registry.RegistryService?
application=XXXXXX-manager-
web&dubbo=2.5.7&interface=com.XXXXXX.sellergoods.service.BrandService&methods=update,get,de
lete,selectOptionList,add,getListByPage&pid=3980&revision=0.0.1-
SNAPSHOT&side=consumer×tamp=1501146823396 to the consumer 172.16.17.14 use dubbo
version 2.5.7
-
@Service注解:com.alibaba.dubbo.config.annotation.Service包 @Reference注解:com.alibaba.dubbo.config.annotation.Reference包 /** 引用服务,调用服务超时的毫秒数(设置的10秒,否则电脑运行缓慢超时也会报错 还有就是不要在查询方法上###打断点###相当于超时了 ) */ @Reference(timeout = 10000)
- 错误原因有两个要注意:
-
服务层代码没有成功注册到注册中心导致,请检查一下你的服务层代码是否添加了 @Service 注解,
并且该注解的包一定是com.alibaba.dubbo.config.annotation包,不是org.springframework.stereotype.Service
-
还有一个原因就是你的服务层工程由于某些原因没有正常启动,也无法注册到注册中心里
无法连接到注册中心
- 错误原文:
org.I0Itec.zkclient.exception.ZkTimeoutException:
Unable to connect to zookeeper server within timeout: 5000
org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:876)
org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98)
org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:92)
org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:80)
com.alibaba.dubbo.remoting.zookeeper.zkclient.ZkclientZookeeperClient.<init>
(ZkclientZookeeperClient.java:26)
- 解决:请检查IP与端口是否填写正确,检查注册中心是否正常启动