在使用SSM+Dubbo+zookeeper时偶尔会碰到这个一个异常:

No provider available from registry 192.168.18.54:2181 for service com.dubbo.consumer.service.ProviderHelloService on consumer 192.168.18.54: use dubbo version 2.6.0, may be providers disabled or not registered ?

在这里插入图片描述
这个异常信息的内容大概的意思是指dubbo找不到提供者

以下总结了对应的解决方法,应该能基本解决所有类似的问题:

1. zookeeper的服务没启动。

原因: 有时候以上来就直接启动项目,很容易以忘记启动zookeeper的服务

2. 项目里对应的service类上没加dubbo的对应注解@Service,这里切记不要导错包。

原因: 有时候会手快导错spring里的@Service

import com.alibaba.dubbo.config.annotation.Service;

3. 如果你在service上加上了@Transactional注解,则需要给@Service添加参数。

原因: 这个是因为@Transactional里面使用了代理类,最终返回的类名不再是原本的类名,这样会导致消费者通过远程调用却找不到对应的类的异常

@Service(interfaceClass = xxxxx.class)//xxxxx为被远程调用的类

4. 数据访问层的mapper.xml里写错了名称空间或者sql语句写错了(还是语法错误,编译不通过)。

原因: 这个是因为service层需要去调用mapper或者是dao,而那边出现异常导致service出现异常,从而消费者远程调用也找不到对应的类

如果以上都不能解决你的问题,那可能是你的代码有问题。
如果不是,则大概率是编程软件出问题了,重启试试。。。

Logo

一站式 AI 云服务平台

更多推荐