前言
版本说明
<spring-boot.version>2.4.2</spring-boot.version>
<spring-cloud.version>2020.0.1</spring-cloud.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
实践
dubbo-api定义要实现的接口
dubbo-provider 和 get 相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.example.rpc</groupId>
<artifactId>dubbo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
bootstrap.yaml
dubbo:
cloud:
subscribed-services: dubbo-provider
scan:
base-packages: com.example.dubboprovider.impl
protocol:
name: dubbo
port: -1
spring:
application:
name: dubbo-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
server:
port: 9001
服务提供方提供实现
@DubboService
public class MsgServiceImpl implements MsgService {
@Override
public String sendMsg(String str) {
return "this is msg :" + str;
}
}
dubbo-get 模块
dubbo:
cloud:
subscribed-services: dubbo-provider
protocol:
name: dubbo
port: -1
spring:
application:
name: dubbo-get
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
server:
port: 9002
@RestController
public class MsgController {
@DubboReference
private MsgService msgService;
@GetMapping("get")
public String msg() {
return msgService.sendMsg("sdasd");
}
}
错误汇总
javax/ws/rs/Path
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[feign.jaxrs2.JAXRS2Contract]: Constructor threw exception; nested
exception is java.lang.NoClassDefFoundError: javax/ws/rs/Path
org.apache.dubbo.dubbo-spring-boot-starter
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>