Не удается найти @FormDataParam в Джерси 2.17
Я новичок в веб-сервисах, поэтому начал с базовых примеров. Это относится к загрузке файлов. Я использую самую последнюю версию версии для Джерси (2.17) для разработчиков, отличных от maven. В нем говорится, что:
содержит банку JAX-RS 2.0 API, все ядро модуля ядра Джерси, а также все необходимые сторонние зависимости
. Проблема в том, что я не могу скомпилировать эту часть:
@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 неполным? Как я могу решить эту проблему?
Ответы
Ответ 1
В комплект поставки входят только модули ядра (и их зависимости). К сожалению, Multipart не является частью ядра. Вам понадобится эта зависимость (Maven) также
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version>
</dependency
Если вы не используете Maven, из того, что я могу сказать, этот артефакт имеет только одну иную зависимость (которая еще не включена в комплект) и mimepull-1.9.3
.
Вы можете загрузить обе артефакты ниже