【发布时间】:2017-10-26 08:56:54
【问题描述】:
我想通过
消费一个返回 XML 数据的 web 服务 Client client = ClientBuilder.newClient();
String seLogerAPI = "http://ws.seloger.com/search.xml";
// Defining some query params. Full doc : https://github.com/bodinsamuel/seloger-php/blob/master/API.md
// More : https://github.com/pasnox/housing/blob/master/SeLoger.com.api.txt
WebTarget target = client.target(seLogerAPI)
.queryParam("idtypebien", "1") // apartements
.queryParam("idtt", "1") // Renting
.queryParam("nb_pieces", "5")
.queryParam("cp", "95330")
;
Response result = target.request(MediaType.TEXT_XML_TYPE).get();
ResponseRecherche res = result.readEntity(new GenericType<ResponseRecherche>() {});
System.out.println(res);
但是我遇到了这个错误:MessageBodyReader not found for media type=text/xml;charset=utf-8
Response result = target.request(MediaType.TEXT_XML_TYPE).get();
工作正常,但是当我尝试通过使用将其放入 POJO 时
ResponseRecherche res = result.readEntity(new GenericType<ResponseRecherche>() {});
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException 被引发...
仅供参考:ResponseRecherche 是一个 POJO,其结构与来自 web 服务的答案相同。我正在关注本教程:https://vaadin.com/blog/-/blogs/consuming-rest-services-from-java-applications
我真的不明白为什么
我的 pom.xml
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.25</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-jaxb</artifactId>
<version>2.25</version>
</dependency>
感谢阅读
【问题讨论】:
标签: java xml api jersey jax-rs