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

Jersey版本问题:未找到媒体类型=应用程序/xml的MessageBodyReader,jersey,jersey-2.0,jersey-client,Jersey,Jersey 2.0,Jersey Client,在编写一个使用XML数据的简单Jersey客户端时,我遇到了一个异常“MessageBodyReader not found for media type=application/XML”。我的所有设置,包括jersey客户端作为maven依赖项都很好。 我使用的版本是2.17。一旦我将版本降级到2.15,它就可以正常工作了。谁能解释一下2.17版需要包含哪些依赖项才能正常工作 Maven依赖项(适用于2.15及更低版本) org.glassfish.jersey.core 泽西岛客户 ${j

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

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


org.glassfish.jersey.core
泽西岛客户
${jersey.version}
用于使用服务的Java代码段

Client c=ClientBuilder.newClient();
WebTarget=null;
target=c.target(Main.BASE\u URI\u XML);
字符串customerId=“415D7AB5”;
XYZ response=target.path(customerId).request(MediaType.APPLICATION_XML).get(XYZ.class);
看一看

27.3.1.1。与核心分离的JAX-B提供程序

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


org.glassfish.jersey.media
泽西媒体jaxb
2.17

谢谢@ppeskillet它成功了。我的朋友应该检查一下文件。谢谢你的回答。在找到你的答案之前,我几乎死了@塞巴斯蒂安迪奥尼不太喜欢。您仍然需要包含依赖项。Bom仅适用于“版本控制”。它实际上并不导入任何依赖项。问题是客户机没有拉入xml依赖项,因此仍然需要添加it@JohnB不,你不需要。您甚至不需要添加依赖项。它应该已经被Jersey服务器依赖项拉入。这篇文章是关于客户机的(它不会自动把它拉进来)。就注册而言,它不应该是必需的。可能您只是缺少POJO上的
@XmlRootElememt
注释(这是一个非常常见的错误)URL现在已断开(即,它没有重定向到正确的页面)。它应该被替换为
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-jaxb</artifactId>
    <version>2.17</version>
</dependency>