原因:调用数个外部 api,api 的返回值的 data 字段会根据接口不同而不同,如果订单接口 那个数组就叫 orders,如果商品列表接口 就叫 spus,我想用一个自定义的反序列化规则把他们都放在统一的 response 对象的 data 字段中(泛型)
如图:
https://sm.ms/image/tLa159rNIPw2FmC
但是每次 feignClient 去请求接口 收到 json 开始反序列化时候 每次走到断点那行 执行 objectMapper 的 readValue 的时候就会直接 feignFallBack 没有什么异常的信息打印出来 很奇怪 从昨天开始困扰了一整天了,代码如图 1.为什么会这样?是不该使用 readValue 吗? 2.有什么更好实现得方法吗? 熟悉 feign 的大神快来救命
1
aragakiyuii 2020-10-30 15:40:38 +08:00 via iPhone
readValue(content, MicroShopOrder[].class)
然后把数组返回值转成 list |
2
InkAndBanner OP @aragakiyuii 感谢老哥 但是我试了 不是这个问题 还是会 fallback https://sm.ms/image/lLE7coQqnKweJyt
|
3
passerbytiny 2020-10-30 15:57:20 +08:00 via Android
你可能需要 JsonNode.asText
toString 得出来的是 JsonNode 实例对应的 json,不是它携带的值对应的 json,无法读取为 List 类型。 还有,为什么不看一下抛出来的异常的信息。 |
4
passerbytiny 2020-10-30 16:01:54 +08:00 via Android
把日志里面的 Error 看完,里面应该有源头的异常信息。
你这个日志是处理过的,也有可能没包含完整信息,但是你都能调试了,在异常导致的断点那里也是能看到异常信息的。 |
5
aragakiyuii 2020-10-30 16:07:18 +08:00
@InkAndBanner #2 不如直接 debug 的时候 Evaluate 一下那行,看看 exception 日志
|