5

我有一个客户端设置为向国家气象服务 SOAP 服务器发送请求。我收到了我期望的响应,但我不确定从中提取所需数据的最佳方法。

例如,XML 中有很多额外的数据(在 SOAPBody 中),但我只想获取我为 POJO 设置的参数(例如温度)的数据。

提取这些数据的最佳方法是什么?

4

2 回答 2

11

我开始尝试像您描述的那样手动使用 SOAP Web 服务 - 有更好的方法。

有一些库可以为您完成所有工作 - 无需手动解析任何内容。

查看JAX-WS。大多数现代 IDE(当然是N​​etbeansEclipse)还提供点击式支持,以在给定 WSDL 的情况下构建 Web 服务客户端。

这条路线上最大的潜在问题是如果没有 WSDL,或者 WSDL 是错误的,在这种情况下,我链接的工具可能会遇到问题。

下一个最安全的方法是使用像 JAXP 的 SAX 和 DOM 等(它们就在您的 JRE 中)这样的 XML 解析器来解析响应,然后遍历所涉及的数据结构。

最后,您可以使用拆分或正则表达式进行字符串黑客攻击,但沿着这条路径有很多潜在的痛苦——XML 规范除了嵌套标签之外还有更多内容。

于 2009-09-23T20:50:05.133 回答
2

强烈建议您不要尝试手动解码 SOAP :)

只是为了扩展@Brabster 所说的内容,Netbeans 具有广泛的 Web 服务支持,尤其是使用 JAX-WS 库。

http://www.netbeans.org/kb/60/websvc/jax-ws.html#Exercise_3_1

于 2009-09-23T20:54:46.043 回答