文章14 | 阅读 6816 | 点赞0
上一节博客《(9)Dubbo2.6.x开发rest风格的服务接口》中介绍了怎么开发rest服务接口,这个过程当中还是遇到了几个坑的,下面给大家一一介绍一下,希望大家早日脱坑,哈哈!
1:服务消费者调用时报错(消费者实际也是调用成功了):java.lang.RuntimeException: RESTEASY004600: You must use at least one, but no more than one http method annotation on: public abstract java.lang.Long com.wkp.service.rest.UserService.addUser(com.wkp.model.User)
说明:这是因为rest相关的annotation标签加在了实现类上,将rest相关的注解改到接口上就可以解决了。
2:消费者调用失败,服务提供者报错:org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: com.wkp.model.User of media type: application/json;charset=UTF-8
说明:这是因为Dubbo服务提供者缺少rest相关的json解析依赖,导致无法识别请求的json参数,服务提供者添加 resteasy-jackson-provider 依赖即可解决
<!-- 如果要支持json请求参数 -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>3.0.19.Final</version>
</dependency>
如果要支持xml请求参数也要添加 resteasy-jaxb-provider 的依赖
<!-- 如果要支持xml请求参数 -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>3.0.19.Final</version>
</dependency>
3:服务消费者调用报错(消费者实际也是调用成功了):java.lang.IllegalStateException: Unsupported protocol rest in notified url: rest://169.254.68.252:8080/restApi/com.wkp.service.rest.UserService。。。。。。
说明:这是因为Dubbo消费者没有添加rest相关的依赖,添加如下pom依赖即可
<!-- rest支持 -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.19.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.19.Final</version>
</dependency>
好了,里面的坑就暂时先介绍到这里,如果有新坑,欢迎留言补充哈!
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/u012988901/article/details/85227252
内容来源于网络,如有侵权,请联系作者删除!