我对网络服务很陌生,所以我从基本的例子开始。这个与文件上传有关。我正在为非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();
}
似乎泽西岛2.17捆绑包中不存在@FormDataParam
,尽管文档说它确实存在。 2.17捆绑不完整吗?我该如何解决这个问题?
答案 0 :(得分:32)
捆绑包仅包含核心模块(及其依赖项)。不幸的是,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
。< / p>
您可以下载
下面的两个工件答案 1 :(得分:0)
您必须从https://mvnrepository.com/ maven存储库Maven 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>