我的代码如下:
调节器
@RequestMapping(value="/setTest", method=RequestMethod.POST, consumes="application/json")
public @ResponseBody ModelMap setTest(@RequestBody List<TestS> refunds, ModelMap map) {
for(TestS r : refunds) {
System.out.println(r.getName());
}
// other codes
}
Run Code Online (Sandbox Code Playgroud)
TestS pojo
public class TestS implements Serializable {
private String name;
private String age;
//getter setter
}
Run Code Online (Sandbox Code Playgroud)
Json请求
var z = '[{"name":"1","age":"2"},{"name":"1","age":"3"}]';
$.ajax({
url: "/setTest",
data: z,
type: "POST",
dataType:"json",
contentType:'application/json'
});
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误
java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为com.gogoair.cidb.entities.TestS
我使用的是Spring 3.1.2和jackson 2.0.4
编辑:我想在我的控制器方法中接收TestS对象列表,并处理它们.我无法找到我发送错误的json或我的方法签名是错误的.
我在Jboss部署的应用程序有以下异常,浏览器是IE8
2012-03-19 09:17:12,014 WARN [org.apache.catalina.core.ContainerBase.jboss.web]. [localhost]] Exception Processing ErrorPage[errorCode=404, location=/internalError.jsp]
ClientAbortException: java.net.SocketException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
Run Code Online (Sandbox Code Playgroud)
似乎浏览器在服务器将internalError.jsp写入它之前关闭了套接字.请建议如何解决它,或至少我如何隐藏此异常.
谢谢Hikumar