我对Web服务很新,所以我已经开始了基本的例子.这一个涉及文件上传.我正在为非Maven开发人员使用最新的(2.17)版本的泽西束.它指出:
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不存在于泽西2.17包中,尽管docs表示它. 2.17束是否不完整?如何解决这个问题?
解决方法
该软件包只包含核心模块(及其依赖项).不幸的是,Multipart不是核心的一部分.你也需要
this dependency(Maven)
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> <version>2.17</version> </dependency
如果你不使用Maven,从我可以告诉的,这个工件只有一个其他的依赖关系(这个还没有包含在bundle中),而且它是mimepull-1.9.3.
您可以下载这两个工件