在 Jersey 2.17 中找不到@FormDataParam
Can't find @FormDataParam in Jersey 2.17
我对 Web 服务还很陌生,所以我从基本示例开始。这一项与文件上传有关。我正在为非 Maven 开发人员使用最新 (2.17) 版本的 Jersey 包。它指出:
bundle contains the JAX-RS 2.0 API jar, all the core Jersey module jars as well as all the required 3rd-party dependencies
。问题是我无法编译这部分:
@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 不是核心的一部分。你还需要 this dependency (Maven)
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version>
</dependency
如果您没有使用 Maven,据我所知,这个工件只有一个依赖项(尚未包含在包中),它是 mimepull-1.9.3
。
您可以在下面下载这两个工件
您必须从 https://mvnrepository.com/ maven repositoryMaven Repository
下载以下依赖项
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-multipart -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.31</version>
</dependency>
它不是 spring-boot-starter-jersey
的一部分
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
我对 Web 服务还很陌生,所以我从基本示例开始。这一项与文件上传有关。我正在为非 Maven 开发人员使用最新 (2.17) 版本的 Jersey 包。它指出:
bundle contains the JAX-RS 2.0 API jar, all the core Jersey module jars as well as all the required 3rd-party dependencies
。问题是我无法编译这部分:
@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 不是核心的一部分。你还需要 this dependency (Maven)
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version>
</dependency
如果您没有使用 Maven,据我所知,这个工件只有一个依赖项(尚未包含在包中),它是 mimepull-1.9.3
。
您可以在下面下载这两个工件
您必须从 https://mvnrepository.com/ maven repositoryMaven Repository
下载以下依赖项<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-multipart -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.31</version>
</dependency>
它不是 spring-boot-starter-jersey
的一部分 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>