我正在使用带有JSF应用程序的Restful Web服务(Jersy实现),并使用Json获取如下数据:
carObjectDao = new GenericDAO<carObject>(carObject.class);
List<carObject> allCars = carObjectDao.readAll();
Gson gson = new Gson();
String carString = gson.toJson(allCars);
System.err.println(carString );
return carString ;
我在调试模式下运行应用程序并且allCars正确地填充了数据,但之后抛出异常:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
我不知道异常的根本原因
答案 0 :(得分:7)
这是一个已知问题:Could not serialize object cause of HibernateProxy
JSon无法反序列化HibernateProxy对象,因此您要么取消注释要么删除它。
或者,您可以急切地获取延迟数据。
答案 1 :(得分:0)
尝试通过 ObjectMapper 解析为
carObjectDao = new GenericDAO<carObject>(carObject.class);
List<carObject> allCars = carObjectDao.readAll();
String carString = new ObjectMapper().writeValueAsString(allCars);
System.err.println(carString );
return carString ;