例如:
@RequestMapping(value = "/searchTravelTemplateById1", method = RequestMethod.GET) public void searchTravelTemplateById1(Integer id, HttpServletResponse response) { TourElectronicTravelTemplate travelTemplate = travelTemplateService.queryTravelTemplateById(id); }
@RequestMapping(value = "/searchTravelTemplateById1", method = RequestMethod.GET) public TourElectronicTravelTemplate searchTravelTemplateById1(Integer id, HttpServletResponse response) { TourElectronicTravelTemplate travelTemplate = travelTemplateService.queryTravelTemplateById(id); return travelTemplate; }
可能会出现一个bug:
2021-06-24 13:54:17.414 ----> [http-nio-8080-exec-1] ---> ERROR o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.tuniu.data.entity.vo.ResponseVo["data"]->com.tuniu.data.travle.entity.TourElectronicTravelTemplate_$$_jvste21_0["handler"])] with root cause com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.tuniu.data.entity.vo.ResponseVo["data"]->com.tuniu.data.travle.entity.TourElectronicTravelTemplate_$$_jvste21_0["handler"])
可以在要返回的实体类属性上加入注解:
@JsonIgnoreProperties(value = {"handler"})
@JsonIgnoreProperties(value = {"handler"}) public class TourElectronicTravelTemplate {
在此标记不生成json对象的属性
因为jsonplugin用的是java的内审机制.hibernate会给被管理的pojo加入一个 handler 属性,jsonplugin会把 handler 也拿出来操作,并读取里面一个不能被反射操作的属性就产生了这个异常.
原文:https://www.cnblogs.com/lzghyh/p/14926663.html