首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 3.2 Jackson2 (400错误请求)

Spring 3.2 Jackson2 (400错误请求)
EN

Stack Overflow用户
提问于 2013-03-21 02:54:54
回答 2查看 618关注 0票数 0

我知道Spring3.2确实会将json转换为带有RequestBody注释的对象列表。这对我不起作用。我可以使用常规的Jackson对象映射器来做这件事。我只是想看看有没有人能帮我。下面是我的json和控制器方法

代码语言:javascript
复制
[{"uniqueJqGridId":"1","fileProcessingDate":"2012-09-24","createdTimeStamp":"1348569180191","csoCode":"A-A  ","cycleDate":"2012-09-24","accountDate":"2012-10-02","originName":"NCAA                     ","amount":"-95996.33","policyNumber":"C               ","transactionCode":"PCH","id":"1"}]

@RequestMapping(method = RequestMethod.POST, value = "/washTransactions", headers="Content-Type=application/json")  
public @ResponseBody RequestStatus washTransactions(@RequestBody List<ReconPolicy> policiesToWash)throws Exception{
    reconciliationService.applyWashToTransactions(policiesToWash,getCurrentUser());
    return new RequestStatus(true);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-21 04:29:25

您正面临Java的类型擦除问题。Spring不能将确切的类类型传递给该方法,因此它实际上得到了类似于List<?> policiesToWash的东西。

解决方法是创建一个类,如下所示

代码语言:javascript
复制
public class WashablePolishes extends ArrayList<ReconPolicy>

这样,spring将通过超级类型链保留类型。

或者您可以将您的方法更改为

代码语言:javascript
复制
public @ResponseBody RequestStatus washTransactions(@RequestBody ReconPolicy[] policiesToWash) throws Exception {...}
票数 1
EN

Stack Overflow用户

发布于 2013-03-21 20:36:32

谢谢你的回复,Varun。从Spring3.2开始,没有类型擦除问题。我在启用spring调试后发现了这个问题,我发现它在一些未知的属性上失败了,我不得不用@JsonIgnoreProperties注释我的类。现在它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15532323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档