org.springframework.http.converter.HttpMessageNotWritableException:

摘要:在使用Spring+Hibernate搭建RESTful API時,在Hibernate查詢出數據實體類使用jackson序列化為json時,返回頁面的時候報如下錯誤:


一:錯誤信息:

HTTP Status 500 - Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"])

type Exception reportmessage Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"])description The server encountered an internal error that prevented it from fulfilling this request.exceptionorg.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"])org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.writeInternal(MappingJackson2HttpMessageConverter.java:196)org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:179)org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:148)org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:90)org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:189)org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687)org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)javax.servlet.http.HttpServlet.service(HttpServlet.java:617)org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)javax.servlet.http.HttpServlet.service(HttpServlet.java:723)org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152)org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
root causecom.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["user"]->com.qdexam.qdky.model.TblUser_$$_javassist_2["handler"])com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:59)com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:26)com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:503)com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:639)com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152)com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:491)com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:412)com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27)com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:114)com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:1887)org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.writeInternal(MappingJackson2HttpMessageConverter.java:193)org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:179)org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:148)org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:90)org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:189)org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746)org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687)org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)javax.servlet.http.HttpServlet.service(HttpServlet.java:617)org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)javax.servlet.http.HttpServlet.service(HttpServlet.java:723)org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152)org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.44 logs.



二:解決辦法:

關聯類里面所有的集合都加入到@JsonIgnoreProperties
這個方法注解是放在類定義上面的,也就是說:
@JsonIgnoreProperties
class A
{

}

如果你定義的類是這樣的:

public class A{private String description;private Boolean enable;private Integer createUser;private Date createTime;private Integer updateUser;private Date updateTime;private Set operations = new HashSet(0);private Set roles = new HashSet(0);private Set menus = new HashSet(0);
}


則把下面那句話加進去.
@JsonIgnoreProperties(value={“hibernateLazyInitializer”,”handler”,”operations”,”roles”,”menus”})

其中hibernateLazyInitializer,handler必須添加!


三:這樣你再重新訪問查詢出數據實體類使用jackson序列化為json時就不會再報錯了,而是直接返回json格式的數據到瀏覽器端。



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443422.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443422.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443422.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hessian Binary Web Service Protocol遠程接口調用入門

摘要:Hessian是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能. 相比WebService,Hessian更簡單、快捷。采用的是二進制RPC協議,因為采用的是二進制協議,所以它很適合于發送二進制數據。 hessian類似于…

Windows+Nginx+Tomcat搭建負載均衡和集群環境同時實現session共享(一)

摘要:隨著網站的訪問量越來越多,所以就考慮給網站增加服務器了,現在比較流行的做法就是給網站做集群環境,下面我把我做的過程記錄一下,方便日后查看,同時也希望可以幫助到有需要的朋友! 一&…

Android開發中調用Spring CXF整合發布的WebService接口為什么拋出異常錯誤?

摘要:最近在協助同事搞Android調用WebService接口,再測試的過程中發現老師報錯,經過baidu,google,終于解決了,現在記錄一下: 一:錯誤信息: 2015-10-28 18:50:39 org.apac…

Eclipse,MyEclipse 安裝SVN插件

摘要:MyEclipse10.5安裝SVN插件最簡單的方式: 一:先到SVN官網下載對應版本的SVN插件包,我這里下載的site-1.10.10版本 下載地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 二&#xf…

MyEclipse 10.5 安裝SVN插件

摘要:MyEclipse10.5安裝SVN插件最簡單的方式: 一:先到SVN官網下載對應版本的SVN插件包,我這里下載的site-1.10.10版本 下載地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 二&#xf…

PHP獲取服務器端的相關信息

摘要&#xff1a;PHP獲取服務端端的相關信息 一&#xff1a;代碼&#xff1a; <!DOCTYPE html> <html> <head><title>第一個PHP程序(獲取服務器信息)</title><meta http-equiv"content-type" content"text/html"; charse…

log4j 標準配置模板:

摘要&#xff1a;log4j在開發中是少不了的&#xff0c;下面貼上我的log4j的配置&#xff0c;該配置文件實現的結果是&#xff0c;每天會生成一個日子文件到指定的目錄下&#xff0c;這樣方便我們隨時查看日志信息&#xff01; log4j.propertieslog4j.rootLoggerINFO,CONSOLE,A …

Sql Server 2005 分頁

摘要&#xff1a;Sql Server 分頁查詢sql! Sql Server 2005分頁查詢數據&#xff0c;適用于手機端和服務器端交互 一&#xff1a;Dao代碼&#xff1a; /*** 分頁查詢研訊分類下的新聞列表*/Overridepublic List<TblNews> getListByYunXunNewId(int cId, int start, int…

Spring+Hibernate+SpringMVC+MySql實現配置多個數據源!

摘要&#xff1a;在日常的工作中&#xff0c;很多時候我們進行項目開發的時候&#xff0c;一個項目有可能不止用到一個數據源&#xff0c;為了提高數據庫的水平伸縮性&#xff0c;需要對多個數據庫實例進行管理&#xff0c;需要配置多數據源! 一&#xff1a;代碼截圖&#xff…

Java之Base64實現文件和字符串之間的轉換

摘要&#xff1a;Java通過Base64加密解密實現文件和字符串之間的轉換&#xff01; Base64.java package com.qdexam.util;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputS…

app中使用用戶名/郵箱/手機號登錄的思路分析

摘要&#xff1a;app中使用用戶名/郵箱/手機號登錄的思路分析 1.客戶端 客戶端需要傳遞2個參數 account 代表&#xff1a;用戶名/郵箱/手機號 password 代表&#xff1a;密碼這里問題來了&#xff0c;那么如何判斷識別用戶輸入的是用戶名還是郵箱&#xff0c;還是手機號就需要…

java實現ListObject轉List實體類,java實現Object轉對象,java實現Object轉實體類

摘要&#xff1a;在java開發中&#xff0c;我們常常會遇到Object轉對象的情況&#xff0c;最近我就遇到了這個問題&#xff0c;現在記錄一下&#xff0c;方便日后自己查看復習&#xff01; 一&#xff1a;查詢Object類型的集合對象的方法如下&#xff1a; List topicList top…

MySql實現分頁查詢的SQL,mysql實現分頁查詢的sql語句

摘要&#xff1a;MySql數據庫實現分頁查詢的SQL語句寫法&#xff01; 一&#xff1a;分頁需求&#xff1a; 客戶端通過傳遞start(頁碼)&#xff0c;limit(每頁顯示的條數)兩個參數去分頁查詢數據庫表中的數據&#xff0c;那我們知道MySql數據庫提供了分頁的函數limit m,n&…

CentOS下安裝Memcached,Linux下安裝Memcached,centos下安裝memcached,linux下安裝memcached...

摘要&#xff1a;最近在看《大型分布式網站架構設計與實踐》這本書&#xff0c;把其中的學習過程記錄一下&#xff0c;以便日后復習。 一&#xff1a;Memcached簡單介紹和描述&#xff1a; Memcached 是一個高性能的分布式內存對象緩存系統&#xff0c;用于動態Web應用以減輕數…

Spring,ehcache整合報錯

摘要&#xff1a;在做Spring整合ehcache配置的時候出現了下面的錯誤&#xff0c;提示如下&#xff1a;java.lang.ClassNotFoundException: org.springframework.cache.ehcache.EhCacheManagerFactoryBean&#xff0c;經過檢查發現是因為org.springframework.cache.ehcache.EhCa…

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/BasePoolableObjectFactory

摘要&#xff1a;異常信息解決過程記錄 一&#xff1a;異常信息&#xff1a; Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/BasePoolableObjectFactoryat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(Cla…

一個微信公眾號接入另一個微信公眾號的內容

摘要&#xff1a;近日來了這么一個需求&#xff0c;就是客戶想在他們的微信公眾號里面直接接入我們微信公眾號的文章&#xff0c;于是我便開始baidu&#xff0c;google&#xff0c;最后發現了一個新的搜索引擎&#xff1a;“搜狗微信搜索”&#xff0c;該搜索引擎是最近才上線的…

SQL Server將數據庫中的表復制到另一個數據庫

在使用SqlServer的過程中&#xff0c;我們可能需要將表從一個數據庫復制到另一個數據庫中&#xff0c;今天&#xff0c;小編為大家介紹這種操作的具體方法及步驟。 一&#xff1a;復制表結構&#xff1a; 1.首先&#xff0c;打開并連接Sql Server&#xff0c;在源數據庫Sourc…

SQL Server cast() 批量更新列內容

摘要&#xff1a;有這樣一個需求&#xff0c;需要把數據表中的列批量更新一下&#xff0c;給后面的數字都增加20&#xff0c;如下圖&#xff1a; 正確的sql如下&#xff1a; update tbl_papers_test set name 執業護士考試兒科護理學cast((cast(substring(name,12,datalength(…

SQL Server 批量更新字段值為ROW_NUMBER()+列名稱

摘要&#xff1a;有這樣一個需求&#xff0c;需要把數據表中的列名稱的數據按行號重新排序并更新一下&#xff0c;這里用到了ROW_NUMBER()函數。 一&#xff1a;需求如下圖&#xff1a; 二&#xff1a;通過執行如下sql語句實現了上面的需求&#xff0c;如下&#xff1a; update…