在Jersey 2.17中找不到@FormDataParam

Ras*_*asa 21 java rest multipartform-data jersey jersey-2.0

我对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();
}
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*tha 32

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

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.17</version>
</dependency
Run Code Online (Sandbox Code Playgroud)

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

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