如何从Java中的SOAP响应中提取数据?
问题描述:
我有一个客户端设置为向国家气象服务SOAP服务器发送请求。我收到了我期望的答复,但我不确定从中需要提取数据的最佳方式。如何从Java中的SOAP响应中提取数据?
例如,XML中有很多额外的数据(在SOAPBody中),但我只想将我设置的参数(例如温度)的数据抓取到我的POJO中。
提取这些数据的最佳方法是什么?
答
我开始尝试像您描述的那样手动使用SOAP Web服务 - 有更好的方法。
有些图书馆会为你做所有的工作 - 无需手工分析任何东西。
结帐JAX-WS。大多数现代IDE(当然还有Netbeans和Eclipse)也为构建Web服务客户端提供点和点击支持。
这条路线最大的潜在问题是,如果没有WSDL或者WSDL错误,在这种情况下,我所链接的工具可能会很困难。
下一个最安全的事情就是使用XML解析器,比如JAXP的SAX & DOM等(它们就在你的JRE中)解析响应,然后遍历所涉及的数据结构。
最后,你可以使用拆分或正则表达式去串黑客攻击的路线,但走上这条路位于潜在的痛苦很大 - 有更多的XML规范再嵌套标签。
答
它强烈receommended你不能用手尝试和解码SOAP :)
只是为了什么@Brabster说扩大, Netbeans的具有丰富的Web服务支持,特别是使用JAX-WS库。
http://www.netbeans.org/kb/60/websvc/jax-ws.html#Exercise_3_1
您使用什么代码来进行SOAP调用? – tster 2009-09-23 20:57:57