尽管参数在POST中,但Spring MissingServletRequestParameterException错误

时间:2014-07-01 12:20:03

标签: java spring spring-mvc

我有一个应用程序,偶尔Spring会抛出错误: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'action' is not present

当然,您会希望action参数丢失,但它肯定会被浏览器发布。我甚至远远看到了Wireshark的网络流量,它就在那里!

以下是从Chromes开发工具中获取的原始帖子的示例 - 请注意&action=accept在那里:

 imageId=1445&customReason=&action=accept&image=iVBORw0K...

&image是base64编码的图像(取自canvas元素),整个POST约为4Mb。

这是在Tomcat 6.0内部运行的Spring 3.2.8。

抛出这个的Spring MVC控制器是:

public String saveApprove(
      HttpServletRequest request,
      Model model,
      @RequestParam(value="action", required=true) String action,
      @RequestParam("imageId") int imageId,
      @RequestParam(value="image", required=false) String imageBase64Encoded,
      @RequestParam(value="rejectReasons", required=false) String rejectReasons[],
      @RequestParam(value="customReason", required=false) String customReason

  )

可能导致这种情况的原因是什么?大多数照片都没问题,但大约10%的照片会抛出此错误。它可以重现投射它的照片。

这是春天的错误吗?

0 个答案:

没有答案