我正在研究Spring MVC项目.我正在使用Hibernate.我想使用AJAX和jQuery从我的Spring Controller中获取一些JSON.不幸的是,当我Gson在我的应用程序中实现方法时,我遇到了一个错误:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class:
org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
Run Code Online (Sandbox Code Playgroud)
我必须使用哪种适配器以及使用哪种方式?该方法的最后一行发生错误:
public String messagesToJson(List<Message> messages) {
Gson gson = new Gson();
List<Message> synchronizedMessages = Collections.synchronizedList(messages);
return gson.toJson(synchronizedMessages, ArrayList.class);
}
Run Code Online (Sandbox Code Playgroud)
这是我Message在使用Hibernate的Spring MVC项目中使用的类:
@Entity
@Table(name = "MESSAGES", schema = "PUBLIC", catalog = "PUBLIC")
public class Message implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private int messageId;
private User users;
private String message;
private Date date;
//Constructor, getters, setters, toString
} …Run Code Online (Sandbox Code Playgroud) 我正在使用带有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 ;
Run Code Online (Sandbox Code Playgroud)
我在调试模式下运行应用程序,allCars正确填充数据,但之后抛出异常:
java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
Run Code Online (Sandbox Code Playgroud)
我不知道异常的根本原因