Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey(rest)使用@FormDataParam上传文件,并且没有文件给出错误的请求_Java_Rest_Jersey_Swagger Ui_Bad Request - Fatal编程技术网

Java Jersey(rest)使用@FormDataParam上传文件,并且没有文件给出错误的请求

Java Jersey(rest)使用@FormDataParam上传文件,并且没有文件给出错误的请求,java,rest,jersey,swagger-ui,bad-request,Java,Rest,Jersey,Swagger Ui,Bad Request,我已经用创建了一个资源,它可以在@FormDataParam注释参数中处理文件上载(该资源也配置为接收查询和头参数) 使用进行测试,只要我将文件和其他参数一起发送,一切正常。 但是如果我省略了这些文件,只填写了其他参数,我的Java方法就不会收到请求(我用调试器验证了这一点),相反,它会以400错误请求提前结束 类别声明: @Path("/v1/users") @Produces("application/json") @Api("UploadDocumento") public class

我已经用创建了一个资源,它可以在
@FormDataParam
注释参数中处理文件上载(该资源也配置为接收查询和头参数)

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

类别声明:

@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) {
方法声明:

@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) {
我检查了浏览器请求头,特别是
内容类型
one,在这两种情况下,它们是相同的

即使是使用的测试也会产生相同的错误


可能有什么问题?

您找到解决方案了吗?目前我自己也有这个问题,正在研究答案。@kyle没有,但后来我发现你可以编写等价的servlet过滤器,检查得非常好!谢谢你的回复。我也有同样的问题。我想知道为什么在这个问题上没有太多。为什么我不能让它接受任何FormDataParams?