【问题标题】:No available MessageBodyWriter for class XX 类没有可用的 MessageBodyWriter
【发布时间】:2018-12-10 10:49:30
【问题描述】:

我正在尝试将一些混合数据从后端(弹簧)发送到后端(球衣) 要发送的数据是混合的:对象、文件。 我不断收到此错误:

javax.ws.rs.ProcessingException:类“class ClassContainsAllMixedData”和媒体类型“multipart/mixed”没有可用的 MessageBodyWriter。

这是我发送请求并等待响应的部分:

 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>

【问题讨论】:

    标签: java spring spring-boot jakarta-ee pom.xml


    【解决方案1】:

    问题出在依赖版本中,我通过删除版本标签来修复它,让 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>
    

    【讨论】:

      猜你喜欢
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 2022-09-27
      • 2017-08-22
      • 1970-01-01
      • 2022-10-20
      • 2022-10-08
      相关资源
      最近更新 更多