今天项目部署到线上环境后一个服务调用另外一个服务出现error,查看错误日志发现报了如下错误:
Caused by: com.fasterxml.jackson.core.JsonParseException:
Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
at [Source: (String)"<!doctype html><html lang="">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1"><meta name="referrer" content="never">
<link rel="icon" href="/favicon.ico"><title>xxx</title>
<script defer="defer" src="/assets/js/chunk-vendors.75d1bc64.js"></script>
<script defer="defer" src="/assets/js/app.d77cfa00.js">
</script><link href="/assets/css/chunk-vendors.8fd1649d.css" rel="stylesheet"><link href="/assets"[truncated 228 chars]; line: 1, column: 2]
一眼看到这个错误以为是json解析出现的错误,是不是反序列化时的字段的类型没有对应,发现是没有问题的,并且本地能够正常调用。。。。
那就是。。。服务之间调用本身就不通了
联系运维查看,果然,被nginx拦截了,加上路由规则后,调用正常。
结论:首先检查json,但不一定是json解析的问题,也可能是域名解析就有问题,调用本身不通,要考虑整个json转换的过程。