私はWebサービスにかなり慣れていないので、基本的な例から始めました。これはファイルのアップロードに関連しています。非Maven開発者向けに、最新(2.17)バージョンのJerseyバンドルを使用しています。それはそれを述べています:
バンドルには、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)も必要です
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version>
</dependency
Mavenを使用していない場合、私が知ることができることから、このアーティファクトには他に1つの依存関係(バンドルにまだ含まれていない)のみがあり、それはmimepull-1.9.3
です。
以下の両方のアーティファクトをダウンロードできます