将视频文件作为多部分请求上传时出现RetrofitError

时间:2019-12-24 14:05:51

标签: java spring retrofit

我想使用翻新的多部分请求上传视频。

以下方法将POST请求发送到 / video / {id} / data ,如果请求成功,则返回true,否则返回相应的HTTP错误状态:

//..
@Controller
public class VideoController {
//....
    @Multipart
    @RequestMapping(value = "/video/{id}/data", method = RequestMethod.POST)
    public boolean setVideoData(@PathVariable("id") long id, @Part("data") TypedFile videoData, HttpServletResponse response) {
           try {
                // save the video data
                // use a VideoFileHelper to store the file...
                // VideoFileHelper.saveVideoData(videoData.in());
                //...
                response.setStatus(200);
                return true;
            } catch (IOException e) {
                e.printStackTrace();
                response.setStatus(404);
                return false;
            }
    }
}

使用以下代码上传视频文件时,

File testVideoData = new File("src/test/resources/test.mp4");
TypedFile file = new TypedFile("video/mp4", testVideoData);
boolean result = setVideoData(1, file);
                 ^

我收到此错误:

  

retrofit.RetrofitError:500服务器错误

     

org.springframework.web.util.NestedServletException:请求   处理失败;嵌套异常为   org.springframework.beans.BeanInstantiationException:无法   实例化Bean类[retrofit.mime.TypedFile]:无默认值   找到构造函数;嵌套异常为   java.lang.NoSuchMethodException:retrofit.mime.TypedFile.<init>()

此错误与 setVideoData(...)的实现无关,这就是为什么我在try bloc中提交了指令。

0 个答案:

没有答案