【发布时间】:2017-05-10 10:46:55
【问题描述】:
我正在尝试使用 CommonsMultipartFile 或 MultipartFile 上传文件 并且它在本地运行良好,但一旦被推入 cloudfoundry 就无法运行。
我正在使用 Postman 进行测试。
这里是示例代码:
@ResponseBody
@RequestMapping(value = "/api/stw/upload1", method = RequestMethod.POST)
public String upload1(@RequestParam(name="text",required=true) MultipartFile text){
return "done";
}
这是我尝试调用 CF URL 时 Postman 中的响应。
{
"timestamp": 1494397075418,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.bind.MissingServletRequestParameterException",
"message": "Required MultipartFile parameter 'text' is not present",
"path": "/api/stw/upload1"
}
注意:我在表单数据中传递了邮递员所需的键值。它在本地而不是 CF 上工作。 eg: text(Key) - uploadfile(Value)
**Request Header**
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8,kn;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Content-Length:32354
Content-Type:multipart/form-data; boundary=----WebKitFormBoundary10QktAWiD1GCsBKF
DNT:1
Host:<CF Service URL>
Origin:chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
Postman-Token:d22500e6-f0d9-0f29-b981-78a45b6e4524
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
**Request Payload**
------WebKitFormBoundary10QktAWiD1GCsBKF
Content-Disposition: form-data; name="uploadFile"; filename="error.txt"
Content-Type: text/plain
------WebKitFormBoundary10QktAWiD1GCsBKF--
【问题讨论】:
-
你是如何在本地运行它的?什么版本的 Java 和 Tomcat?当您在 CF 上运行应用程序时,这些是否与 Java 构建包安装的版本相匹配(提示:Java 构建包将显示它在暂存期间安装的版本)。可能还有助于查看您发送的请求。也许从 Chrome 开发工具中捕获它,或者包含
curl命令来复制它。 -
对于本地,我从 Postman 调用服务。 Java 和 tomcat 都是最新的,即 Java8 和 tomcat 8.5。
-
请求头 Accept:*/* Accept-Encoding:gzip, deflate, br Accept-Language:en-US,en;q=0.8,kn;q=0.6 Cache-Control:no-cache连接:保持活动内容长度:32354 内容类型:multipart/form-data;边界=----WebKitFormBoundary10QktAWiD1GCsBKF DNT:1 主机:
来源:chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop -
您能否编辑并将其包含在您的初始回复中,以便更好地格式化?
-
请检查...
标签: web-services spring-boot amazon-s3 cloud-foundry predix