Нет доступных MessageBodyWriter для класса X - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь отправить несколько смешанных данных из бэкэнда (весна) в бэкэнд (майка) данные для отправки смешаны: объекты, файлы. Я получаю эту ошибку:

javax.ws.rs.ProcessingException: недоступно MessageBodyWriter для класса "class ClassContainsAllMixedData" и типа мультимедиа "multipart / mixed".

это моя часть, куда я отправляю запрос и жду ответа:

 try(MultiPart multiPart = new MultiPart()) {
        multiPart
            .bodyPart(new BodyPart(ClassContainsAllMixedData, MediaType.APPLICATION_JSON_TYPE))
            .bodyPart(
                    new BodyPart(file,
                            MediaType.APPLICATION_OCTET_STREAM_TYPE))
            .bodyPart(
                    new BodyPart(fileInfos,
                            MediaType.APPLICATION_JSON_TYPE));

        Response response = client.target(API_URI)
                .request(MediaType.APPLICATION_JSON)
                .post(Entity.entity(multiPart, multiPart.getMediaType()));
        System.out.println(response);
    }catch (ProcessingException ex){
        System.out.println(ex);
    }

Я так и не смог отобразить ответ, потому что он не срабатывает при запросе.

это зависимости, которые я использую:

<dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>2.6</version>
    </dependency>

1 Ответ

0 голосов
/ 02 июля 2018

Проблема была в зависимости от версии. Я исправил ее, удалив тег версии и позволив pom автоматически получить нужную версию (2.7)

 <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...