使用 Spring 3.2.0 和 Jackson 2.1.1 反序列化对象数组时遇到问题。当我用对象数组点击控制器时,它会抛出“无法实例化 bean 类。未找到默认构造函数”。我的 Pojo 也有默认构造函数。我在 dispatcher-servlet 中使用MappingJackson2HttpMessageConverter进行 JSON 处理。
波乔:
public class Student{
private String rollNum;
private String firstName;
private String lastName;
public Student(){
}
/**
* @return the firstName
*/
public String getFirstName() {
return firstName;
}
/**
* @param firstName the firstName to set
*/
public void setFirstName(String firstName) {
this.firstName = firstName;
}
/**
* @return the lastName
*/
public String getLastName() {
return lastName;
}
/**
* @param lastName the lastName to set
*/
public void setLastName(String lastName) {
this.lastName = lastName;
}
/**
* @return the rollNum
*/
public String getRollNum() {
return rollNum;
}
/**
* @param rollNum the rollNum to set
*/
public void setRollNum(String rollNum) {
this.rollNum = rollNum;
}
}
控制器类:
public @ResponseBody
String saveStudentName(
final @ModelAttribute Student[] student){
//code goes here
}
该服务受到 iOS 应用程序的影响。当我用单个对象(@ModelAttribute Student student)点击相同的服务时,它工作正常。但是用对象数组击中,它会抛出异常
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [[Lcom.student.pojo.Student;]: No default constructor found;
客户端输入是
[{"rollNum":"12","firstName":"qweqw","lastName":"adsf"},{"rollNum":"23","firstName":"rty","lastName":"fghj"}]
并且客户端收到以下错误作为响应
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=0x7522680 {NSDebugDescription=Invalid value around character 0.}
请有人告诉我哪里错了。如果控制器参数正确,请告诉我可以发送给控制器的输入格式。
提前致谢。