dubbo Unsupported protocol rest
时间: 2023-09-17 17:08:46 浏览: 144
这个错误通常是因为 Dubbo 默认只支持 `dubbo` 协议、`rmi` 协议、`hessian` 协议、`http` 协议和 `thrift` 协议,不支持 `rest` 协议导致的。如果你需要使用 `rest` 协议,需要使用 Dubbo 提供的扩展来支持。
具体来说,你需要引入 Dubbo REST 扩展依赖,例如:
```xml
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-rest</artifactId>
<version>${dubbo.version}</version>
</dependency>
```
然后,在 Dubbo 服务提供者和消费者的配置中,需要指定使用 `rest` 协议,例如:
服务提供者:
```xml
<dubbo:protocol name="rest" port="8080" server="tomcat"/>
<dubbo:service interface="com.example.UserService" ref="userService" protocol="rest"/>
```
服务消费者:
```xml
<dubbo:reference id="userService" interface="com.example.UserService" protocol="rest" url="http://localhost:8080"/>
```
注意,需要在 `protocol` 属性中指定使用 `rest` 协议,同时还需要指定 `server` 属性以及相关的配置,例如上面的示例中使用了 `tomcat` 作为服务器。
另外,需要注意的是,Dubbo REST 扩展目前还处于孵化阶段,可能存在一些不稳定性或者限制。如果你需要使用 RESTful 风格的接口,可以考虑使用 Spring Cloud 或者其他的框架来实现。希望能对你有所帮助。
阅读全文