1. 背景
使用@Reference注解实现消费者调用服务端代码,调用报错NullPointerException,如图:
注意:如果你的服务端没有注册到dubbo,客户端在调用时也会出现NullPointerException报错,所以可以先到dubbo-admin去看下服务端是否已经正常注册。
dubo-admin安装方式可参照:
https://blog.csdn.net/u011294519/article/details/81712601
2. 服务端代码
因为只是写一个小demo,代码逻辑十分简单
2.1. 服务端接口
2.2. 服务端接口实现类
注意:这里的@Service注解需要使用com.alibaba.dubbo.config.annotation.Service。
2.3. 服务端dubbo配置文件
3. 客户端代码
3.1.接口
3.2. 测试接口
3.3. 配置文件
4. Dubbo-admin结果
到这里为止看上去都很正常,但是只要客户端调用服务端方法就报NullPointerException。
5. 解决方法
网上找了很多方法,但是都不能解决问题,后来想到有没有可能是SpringMVC的包扫描影响了dubbo的注解扫描,然后尝试着将dubbo的包扫描配置单独抽出来,放在SpringMVC配置的最上面,果然问题解决。如图:
然后把dubbo配置中的这个去掉,问题解决。