Не удается найти @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.

Вы можете загрузить обе артефакты ниже