如何从Java中的SOAP响应中提取数据?

时间:2009-09-23 20:46:09

标签: java soap soap-client

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

例如,XML中存在大量额外数据(在SOAPBody中),但我只想获取我设置的参数(例如温度)的数据到我的POJO。

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

2 个答案:

答案 0 :(得分:10)

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

那里有图书馆可以为你完成所有工作 - 无需手工解析任何东西。

结帐JAX-WS。大多数现代IDE(当然NetbeansEclipse)也提供了点击支持,用于在给定WSDL的情况下构建Web服务客户端。

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

下一个最安全的事情是使用像JAXP的SAX& DOM等(它们就在你的JRE中)解析响应,然后遍历所涉及的数据结构。

最后你可以使用拆分或正则表达式进行字符串黑客攻击路径,但沿着这条路径存在很大的潜在痛苦 - XML规范还有嵌套标记。

答案 1 :(得分:1)

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

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

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