SpringBoot Dubbo 大坑之Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.wudner.service.OrderService. No provider available for the service
具体错误:
Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.wudner.service.OrderService. No provider available for the service com.wudner.service.OrderService from the url zookeeper://192.168.1.103:2181/com.alibaba.dubbo.registry.RegistryService?application=springboot-user-service&dubbo=2.6.2&interface=com.wudner.service.OrderService&methods=getUserOrder&pid=12992®ister.ip=192.168.1.103&side=consumer×tamp=1593018601805 to the consumer 192.168.1.103 use dubbo version 2.6.2
at com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) ~[dubbo-2.6.2.jar:2.6.2]
at com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:333) ~[dubbo-2.6.2.jar:2.6.2]
at com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163) ~[dubbo-2.6.2.jar:2.6.2]
at com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66) ~[dubbo-2.6.2.jar:2.6.2]
... 43 common frames omitted
解决方式:
提供者代码:
@Service(version = "1.0.0") // 注意定义的版本号
public class OrderServiceImpl implements OrderService {
public Order getUserOrder(Integer id) {
Order order = new Order();
order.setUid(id);
order.setOrderNo("202020202020100");
order.setContent("产品订单信息");
return order;
}
}
消费者代码:
@Service(version = "1.0.0")
@Component
public class UserServiceImpl implements UserService {
@Reference(version = "1.0.0") // 版本号
// @Reference
OrderService orderService;
public User selectUserById(Integer id) {
Order userOrder = orderService.getUserOrder(id);
User user = new User();
user.setUid(id);
user.setAge(1);
user.setName("wudner");
user.setEmail("9653916@qq.com");
user.setOrder(userOrder);
return user;
}
}
消费者的Reference
注解的属性version
需要对应提供者的@Service(version = "1.0.0")