JAX-RS HTTP многочастный запрос - PullRequest
1 голос
/ 09 мая 2019

Как реализовать multipart / form-data обработчик запроса (загрузки файла) с JAX-RS без специальных библиотек поставщика?До сих пор я не нашел другого способа, кроме как внедрить HttpServletRequest и использовать Servlet API для доступа к данным формы.

Тем не менее HttpServletRequest#getParts() возвращает пустой список, даже если запрос правильно сформирован (подтверждено с помощьюWireshark).Я прочитал, что мне нужно включить многокомпонентную конфигурацию сервлета Джерси в файле web.xml.Однако я использую аннотацию @ApplicationPath для автоматической настройки JAX-RS.Итак, как правильно обрабатывать многочастные запросы?

1 Ответ

1 голос
/ 09 мая 2019

Этот код может вдохновить вас

1) Настройка приложения JAXRS

import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.media.multipart.MultiPartFeature;


@ApplicationPath("demo") 
public class ApplicationConfig extends ResourceConfig {
   public ApplicationConfig() {
     packages("com.mycompany.demo").register(MultiPartFeature.class); // <= here!
   }
}

2) Служба JAXRS

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadImage(
    @FormDataParam("file") InputStream data,
    @FormDataParam("file") FormDataContentDisposition fileInfo) {
...
}    
...