錯誤信息:
I/O error while reading input message; nested exception is java.io.IOException: com.ctc.wstx.exc.WstxUnexpectedCharException:
Unexpected character \u00275\u0027 (code 53) in prolog; expected \u0027\u003c\u0027\n at [row,col {unknown-source}]: [1,1]
使用 JsonResult(公司統一封裝響應結果類型) 接收 restTemplate 方式調用其他服務接口的響應信息,報錯如上所示。
通過錯誤信息 I/O error while reading input message; 搜索在源碼中發現是類型轉化錯誤導致的,調用不同的接口返回的響應結果是不一致的。
我接收響應結果類型為:{"success":true,"businessCode":"1","errorCode":"200","msg":"","data":"重試成功!"},公司統一封裝的響應結果類型。
我調用A接口返回的結果類型為我上面定義的接收類型,但是我調用B接口他返回的數據是一個字符串,所以導致我接受響應結果的時候類型轉換異常。
解決方案:確定調用接口的返回類型都是一致的,按理說公司中不同服務之間的調用響應結果類型都是公司統一封裝的。如果有個別接口響應結果不是統一的方式,需要使用 Object 類型 或者 使用 String 類型接收響應結果。具體的需要根據自己業務需求進行處理。