springcloud微服务(eureka + openFeign) - Go语言中文社区

springcloud微服务(eureka + openFeign)


        首先想先说1w个CNM,坑的自己外焦里嫩。但是功夫不负有心人,终于微服务的基础框架达成了。

一、搭建思路

      之前一直用springBoot,上手springCloud还是很快的。实际也就是把springBoot拆成多个项目,然后其他项目通过model或jar引入的方式。我这里的思路:

clouddata:常量、统一出参对象、dto、vo

eureka:服务注册中心

commonservice:通用服务(有其他服务实际就是复制这个项目,改改)

web:测试调用(也可以作为统一接口层)

二、搭建过程

这里我就不细说了,有人写的很详细的了,我这里是参考博友的:

https://blog.csdn.net/qq_37511501/article/details/94402282

网上说服务提供方也是调用方,所以服务提供方有的也引入了openFeign的支持。我这里是暂时没有这样处理,主要还是怕自己糊了,所以先规矩搭建。

三、遇到的坑

我这里通用服务单独跑是正常的,依然是可以使用url请求的。web调用也正常,能进通用服务的实现类。唯一的问题就是web里用统一出参对象接收不了,一直报json转换器的问题。

于是:

1、各种加Configuration,使劲折腾了半天configureMessageConverters,都失败,报错依然

2、怀疑不能使用Result<?>接收,改成指定对象,依然失败

3、怀疑序列化,修改result统一出参对象实现序列化

最后,使用翻译插件,对报错上面的一段话翻译(警告WARN)

警告说我的统一出参对象的code转换失败,于是再细看统一出参,一行行过(这里其实已经说明了setCode方法),终于发现里面setCode方法有2个,有一个是传枚举ResultCode对象设置code。你不是说基础对象jackson转换失败吗,好,我就去掉这个枚举对象setCode方法,修改业务调用都只能传int。重新编译,启动服务注册、启动服务、启动调用测试。postman调用测试,终于熟悉的返回出现了。

我这个问题看似报的Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found for response type 

实际上不是转换器的问题,就是统一出参里使用了枚举对象的问题。转换爆出来的仅仅是警告被我忽略了,以后要注意,不要轻易放过任何一个细节。

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zwrlj527/article/details/103770671
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-18 21:16:43
  • 阅读 ( 1686 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢