记录学习FeignClien遇到的坑

导读:本篇文章讲解 记录学习FeignClien遇到的坑,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.报错404路径错误

第一次测试调用报错404.
在这里插入图片描述
postman调用测试环境是没问题的.
在这里插入图片描述
代码如下:
master-data-main是nacos微服务服务列表的服务名.也是调用的测试环境.
在这里插入图片描述
经过对比发现,path少了一个master-data,加上master-data就解决了.


2.调用成功后返回数据为null.

启动本地服务,调用测试环境的测试接口.
controller.
在这里插入图片描述
在这里插入图片描述
调用服务.
在这里插入图片描述
调用结果和预期的不符合.
在这里插入图片描述
服务方接口.
在这里插入图片描述
经过排查发现,调用的服务返回的一个Resultsjson格式的数据.我用对象去接收是不会映射值的.

feign接口改成.
在这里插入图片描述

调用结果:
在这里插入图片描述


3.Feign返回的JSON对象转化为所需要的实体:

// json ,调用返回的数据.
JSONObject json = testFeign.result(consultantCode);
 //将json转成需要的对象,data为实体需要的数据
ConsultantDTO  consultantDTO =  this.convertValue(json.get("data"),ConsultantDTO.class);

 /** convertValue方法
  * @param bean  object对象
  * @param clazz  要转的class类
  * @param <T>第一个T声明这个方法是个泛型方法,第二个T是表示这个方法的返回类型.
  * @return  返回具体的实体对象.
*/
public static <T> T convertValue(Object bean, Class<T> clazz){
    try{
       ObjectMapper mapper = new ObjectMapper();
        return mapper.convertValue(bean, clazz);
     }catch(Exception e){
        e.printStackTrace();
        return null;
     }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5820.html

(1)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!