Jersey 版本问题 : MessageBodyReader not found for media type=application/xml

标签 jersey jersey-2.0 jersey-client

在编写一个使用 XML 数据的简单 Jersey 客户端时,我遇到了这个异常“找不到 Media type=application/xml 的 MessageBodyReader”。我的所有设置,包括 jersey-client 作为 maven 依赖项都很好。
我使用的版本是 2.17。一旦我将版本降级到 2.15,它就开始正常工作。任何人都可以解释需要包含哪些依赖项才能使 2.17 版正常工作。

Maven 依赖(适用于 2.15 及更低版本)

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>${jersey.version}</version>
</dependency>

用于使用服务的 Java 代码片段

Client c = ClientBuilder.newClient();
WebTarget target = null;
target = c.target(Main.BASE_URI_XML);

String customerId = "415D7AB5";

XYZ response = target.path(customerId).request(MediaType.APPLICATION_XML).get(XYZ.class);

最佳答案

看看27.3. Migrating from Jersey 2.15 to 2.16

27.3.1.1. JAX-B providers separated from the core

From version 2.16 onwards, all JAX-B providers are being bundled in a separate module.

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>2.17</version>
</dependency>

关于 Jersey 版本问题 : MessageBodyReader not found for media type=application/xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754641/

相关文章:

java - REST Jersey 导致 HTTP 状态 500 - 内部服务器错误

Java Spring + Jersey 子资源 : inject constructor-arg at runtime

jackson - JAX-RS( Jersey ),Bean 验证,@JsonIgnore

java - Jersey 2.27 无法处理 POST

java - 如何为 Web 应用程序编写一些独立的 Restful 测试

jersey-2.0 - Jersey 2.25.1 客户端日志记录示例

java - 使用 Jersey/Grizzly 的基本 HTTP 身份验证

java - 使用 oAuth 2.0 保护基于 Jersey 的 REST 服务

java - 在 Osgi 中以编程方式注册 ServletContainer

java - 带有 maven 的 Jersey 2 客户端