在Jersey 2.17中找不到@FormDataParam

我对Web服务很陌生,所以我从基本的例子开始。 这个涉及文件上传。 我正在为非maven开发人员使用最新的(2.17)版本的Jersey软件包。 它指出:

bundle包含JAX-RS 2.0 API jar,所有核心Jersey模块jar以及所有必需的第三方依赖项

。 问题是我无法编译这部分:

@POST @Path("/upload") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFile( @FormDataParam("file") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileDetail) { String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName(); // save it writeToFile(uploadedInputStream, uploadedFileLocation); String output = "File uploaded to : " + uploadedFileLocation; return Response.status(200).entity(output).build(); } 

似乎@FormDataParam在Jersey 2.17包中不存在,尽管文档说它确实存在。 2.17捆绑不完整吗? 我该如何解决这个问题?

捆绑包仅包括核心模块(及其依赖项)。 不幸的是,Multipart不是核心的一部分。 你也需要这种依赖 (Maven)

  org.glassfish.jersey.media jersey-media-multipart 2.17  

如果你没有使用Maven,从我所知道的,这个工件只有一个其他的依赖(没有包含在bundle中),而且它是mimepull-1.9.3

您可以在下面下载这两个工件

  • 新泽西媒体多
  • mimepull-1.9.3