Failure while trying to resolve exception [org.springframework.http.converter.HttpMessageNotWritabl
報錯原因:
無法寫入JSON:無限遞歸(StaskOfFultError);嵌套異常是COM.FaSTXML.JavaS.DavaDist.jSnMappApExpExchange:無限遞歸(StAccOffFuffError)(通過引用鏈:
解決辦法:
在set方法上加@JsonBackReference
詳細介紹
在controller返回數據到統一json轉換的時候,還會出現json infinite recursion stackoverflowerror的錯誤,即json在將對象轉換為json格式的數據的時候,出現了無限遞歸調用的情況。
具體的情況如下:
A類中,有個屬性:List b, A與B的關系為 OneToMany;在B類中,有屬性A a,引用到A中的字段id,并作為外鍵。hibernate查詢結果正常,可以看到返回的A對象中,有b參數值,但在json轉換的時候就出現了無限遞歸的情況。個人分析,應該是json在序列化A中的b屬性的時候,找到了B類,然后序列化B類,而B類中有a屬性,因此,為了序列化a屬性,json又得去序列化A類,如此遞歸反復,造成該問題。
解決:
在B類中a的getter setter方法上加注解@JsonBackReference,其實只在setter方法上加@JsonBackReference也夠了。
相關鏈接: https://blog.csdn.net/weixin_30594001/article/details/97928639
總結
以上是生活随笔為你收集整理的Failure while trying to resolve exception [org.springframework.http.converter.HttpMessageNotWritabl的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Module not found: Er
- 下一篇: java.util.NoSuchElem