对于大型请求,Spring MVC + jquery数据绑定为null

时间:2015-01-29 11:55:37

标签: java jquery spring-mvc

我有一个在前端使用Spring MVC和Jquery的Web应用程序。从jsp到控制器的数据绑定对于小数据来说效果很好而且花花公子。我的表单绑定到包含对象列表的对象。

当它试图处理 3000 记录时出现问题,myList上只找到 2000 记录。 10000 记录,myList包含null

Public class DataBindingObject{
private List<MyObject> myList
}

     /**
     *This is my controller
     */
    @RequestMapping(value="/submit", method=RequestMethod.POST)
    public ModelAndView submitRequest(@ModelAttribute("submitAllocations") DataBindingObject dto) throws ServiceException {
        ModelAndView mav = new ModelAndView("redirect:/search");
    }

如果我达到最大尺寸,我检查了tomcat日志,但没有。 我错过了什么?提前谢谢!

修改

如果将整个请求有效负载发送到控制器,我使用Firebug进行了检查,显然确实如此。出于某种原因,控制器无法绑定整个请求有效负载。奇怪的是,对于相当大的数据,它似乎被限制在2000,而对于大数据,似乎是null。我们的应用程序使用WebDataBinder将请求绑定到我们的对象中,似乎其中存在问题。

/**
     * Sets the initial list size for arrays used in ModelAttributes.
     * 
     * @param dataBinder
     */
    @InitBinder
    private void initBinder(WebDataBinder dataBinder) {
        dataBinder.setAutoGrowCollectionLimit(listSizeLimit);
    }

1 个答案:

答案 0 :(得分:0)

我们终于找到了罪魁祸首! Tomcat有maxPostSizemaxPostSize maxParameterCount设置限制了我们的请求!奇怪的是,它并没有像我从其他人那里读到java.lang.IllegalStateException,这使得调试变得如此困难。

我刚刚在位于server.xml的{​​{1}}添加了这些设置,并将其设置为my/tomcat/directory/conf-1以禁用限制。

但我并不在乎为什么它不会抛出异常。但我很高兴我们找到了解决方案。

0

参考: http://sisis.bth.rwth-aachen.de:8080/docs/config/ajp.html