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.mzph.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…