当前位置: 首页 > 知识库问答 >
问题:

Jersey版本问题:找不到媒体类型=应用程序/xml的MessageBodyReader

索曾琪
2023-03-14

在编写一个使用XML数据的简单Jersey客户端时,我遇到了一个异常“MessageBodyReader not found for media type=application/XML”。我的所有设置,包括作为maven依赖项的jersey客户端都很好。我使用的版本是2.17。一旦我将版本降级到2.15,它就可以正常工作了。谁能解释一下版本2.17需要包含哪些依赖项才能工作吗。

Maven依赖项(在2.15和更低版本上工作)

xml prettyprint-override"><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);

共有1个答案

燕翼
2023-03-14

看看27.3.从泽西岛2.15迁移到2.16

27.3.1.1 .与核心分离的JAX-B提供商

从2.16版开始,所有JAX-B提供程序都捆绑在一个单独的模块中。

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>2.17</version>
</dependency>
 类似资料: