使用@FormDataParam上传Jersey(rest)文件,没有文件提供400个错误请求

时间:2016-08-19 10:33:44

标签: java rest jersey swagger-ui bad-request

我已经创建了一个Jersey资源,可以处理@FormDataParam中的文件上传 - 带注释的参数(资源也配置为接收查询和标头参数)。

使用Swagger-UI进行测试,只要我将文件与其他参数一起发送,一切正常 但是如果我省略了这些文件,并且只填写其他参数,那么我的Java方法就不会收到请求(我用调试器验证了这一点),而是以400 Bad Request错误提前结束。

班级声明:

@Path("/v1/users")
@Produces("application/json")
@Api("UploadDocumento")

public class UploadDocumentResourcesApiV10 extends CommonResourcesApi {

方法声明:

@Consumes({MediaType.MULTIPART_FORM_DATA})
@POST @Path("{userRef}/documents")
public Response uploadDocuments(
        @HeaderParam("X-Api-Token") String apiToken,
        @PathParam("userRef") String contactId,  
        @QueryParam("desc") String uploadDescription,
        @QueryParam("file1Desc") String file1Description, 
        @FormDataParam("file1") InputStream file1, @FormDataParam("file1") FormDataContentDisposition file1Meta,
        @QueryParam("file2Desc") String file2Description,
        @FormDataParam("file2") InputStream file2, @FormDataParam("file2") FormDataContentDisposition file2Meta) {

我已检查过浏览器请求标头,特别是Content-Type标头,在这两种情况下它们都是相同的。

即使使用cUrl的测试也会出现同样的错误。

可能出现什么问题?

0 个答案:

没有答案