Payara / Glassfish JAX-RS multipart - PullRequest
       58

Payara / Glassfish JAX-RS multipart

0 голосов
/ 14 октября 2019

Я пытаюсь настроить составную конечную точку jax-rs на paraya (думаю, то же самое будет и со Glassfish). Я сделал простой пример с минимальным кодом java-ee8. Я знаю, что не существует стандартного способа добавления поддержки нескольких частей в jax-rs.

Я обнаружил, что для Payara / Glassfish я должен добавить класс MultiPartFeature, как это:

@ApplicationPath("/api")
public class JAXRSConfiguration extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<>();
        classes.add(MultiPartFeature.class);
        return classes;
    }
}

Это моя конечная точка:

@Path("")
public class ExampleResource {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String postMultipartMethod(
        @FormDataParam("field") InputStream fileInputStream,
        @FormDataParam("field") FormDataContentDisposition fileMetaData
    ) {
        return "post multipart method";
    }
}

.

curl -v -F field=@pom.xml http://localhost:8080/jax-rs-multipart/api
> POST /jax-rs-multipart/api HTTP/1.1
> Content-Type: multipart/form-data; boundary=------------------------d60a2c38aa57dfbe
> 
< HTTP/1.1 404 Not Found

Я получаю «404 - Запрошенный ресурс недоступен». Если я закомментирую добавление полей MultiPartFeature и метода, тогда конечная точка работает, но я не могу получить опубликованные поля. Если я закомментирую MultiPartFeature и оставлю параметры метода, то получу «Источник параметра не найден для параметра типа ...»

Он развертывается нормально, не видит ничего плохого в журналах.

Я положил его в github repo , если вы хотите воспроизвести.

...