【问题标题】:Consuming a REST Webservice in JAVA which gives output as XML在 JAVA 中使用 REST Web 服务,以 XML 形式提供输出
【发布时间】:2016-08-22 18:46:10
【问题描述】:

我需要通过我的 java 类访问第三方 REST Web 服务,该类以 xml 格式提供响应。

我如何编写一个示例 java 类来使用这个第三方 REST 服务?

在谷歌搜索了几天后,我发现我可以使用 Jersey 来使用 web 服务。但我仍然不确定如何在我的场景中使用 Jersey,因为我只需要读取来自第三方 Web 服务的响应。请帮忙。

编辑: 我尝试使用网站http://pojo.sodhanalibrary.com/ 将 webservice 获得的 xml 响应转换为 POJO 类。 但仍然不确定我到底需要做什么才能继续前进。

【问题讨论】:

  • 我们不知道您所说的“使用”服务的输出是什么意思。您需要将其反序列化为 POJO 吗?只解析XML?这个问题根本不是很清楚。
  • 我再次看到这个问题的 -1。我不明白这背后的原因。无论如何,我相信“consume”是一个用于 web 服务的通用关键字,这也是我在这里使用该术语的原因。我的要求是我需要向第三方 rest web 服务发出请求,该服务以 xml 格式提供输出。我的问题是如何在不编写任何特定的 xml 解析器或其他东西的情况下解析此响应。我相信带有 JAXB 的 Jersey 会在这里有所帮助,但我不确定我该如何使用它。像这样的大多数问题在stackoverflow中仍然没有答案。
  • 这就是问题所在。 “消费”过于笼统,我们不知道您对返回的 XML 的最终目标是什么。
  • @JimGarrison 我需要读取 xml 响应并将其转换为 Java 对象。(我假设我已经在问题中解释了这一点)

标签: xml web-services rest jersey


【解决方案1】:

您需要 Java 的 REST 客户端。有几种实现方式,更多细节可以在以下位置找到:

执行请求,获取响应并将其解析为您的数据结构。泽西客户端示例:

Client client = Client.create();

WebResource webResource = client.resource("http://localhost:8080/example/rest/service");

ClientResponse clientResponse = webResource.accept("application/xml").post(ClientResponse.class, yourRequestObject);

YourResponseType yourResponse = clientResponse.getEntity(YourResponseType.class);

【讨论】:

  • 谢谢@Justas 的指导。尽管回答这个问题为时已晚(我已经发布了将近 22 个月),但我还是能够通过以下步骤实现我的要求:
猜你喜欢
  • 1970-01-01
  • 2011-06-09
  • 2014-02-27
  • 1970-01-01
  • 2023-03-29
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多