Mar*_*ark 8 java spring spring-mvc
我有一个应用程序,Spring 偶尔会抛出错误:
org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'action' is not present
当然,您会期望action
参数丢失,但它肯定是由浏览器发布的。我什至用 Wireshark 观察网络流量,它就在那里!
以下是从 Chrome 开发工具中获取的原始帖子示例 - 请注意&action=accept
:
imageId=1445&customReason=&action=accept&image=iVBORw0K...
Run Code Online (Sandbox Code Playgroud)
这&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
)
Run Code Online (Sandbox Code Playgroud)
可能是什么原因造成的?大多数照片都可以,但大约 10% 会出现此错误。对于抛出它的照片来说,它是可复制的。
这是 Spring 的一个错误吗?
归档时间: |
|
查看次数: |
1532 次 |
最近记录: |