java - X 类没有可用的 MessageBodyWriter

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

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

javax.ws.rs.ProcessingException: No available MessageBodyWriter for class "class ClassContainsAllMixedData" and media type "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>

最佳答案

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

关于java - X 类没有可用的 MessageBodyWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51132267/

相关文章:

java - 用更简洁的字符串编码方式替换多个 replaceAll

java - 快速排序算法导致堆栈溢出

Spring Boot 不读取 data.sql 但它读取 import.sql

java - Tapestry - 复合组件?

java - 我应该如何根据Java中字符串的值在方法中返回不同的类型?

java - 使用带有 Spring 依赖项的 Maven 插件运行可运行 Jar 时出现问题

java - 多模块项目中的 spring boot gradle 插件-查找 mainClass 时出错

spring - org.springframework.web.client.HttpClientErrorException : 401 Unauthorized

java - 通过springboot和thymeleaf列出从数据库到html页面的对象

java - 没有类型为 'org.springframework.cloud.bootstrap.encrypt.RsaProperties' 的合格 bean