Je suis assez nouveau dans les services Web, j'ai donc commencé avec des exemples de base. Celui-ci concerne le téléchargement de fichiers. J'utilise la dernière version (2.17) du bundle Jersey pour les développeurs non-maven. Il déclare que:
le bundle contient le pot API JAX-RS 2.0, tous les pots du module Jersey de base ainsi que toutes les dépendances tierces requises
. Le problème est que je ne peux pas compiler cette partie:
@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();
}
Il paraît que @FormDataParam
n'existe pas dans le bundle Jersey 2.17 bien que la documentation indique que c'est le cas. Le pack 2.17 est-il incomplet? Comment puis-je résoudre ce problème?
Le bundle comprend uniquement les modules de base (et leurs dépendances). Malheureusement, Multipart ne fait pas partie du noyau. Vous aurez besoin de cette dépendance (Maven) également
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version>
</dependency
Si vous n'utilisez pas Maven, d'après ce que je peux dire, cet artefact n'a qu'une seule autre dépendance (qui n'est pas déjà incluse dans le bundle), et c'est mimepull-1.9.3
.
Vous pouvez télécharger les deux artefacts ci-dessous