基于SAAJ的Web服务----(三)从SOAP消息中提取内容
来源:互联网 发布:spark连接巨杉数据库 编辑:程序博客网 时间:2024/06/05 22:47
我们得到SOAP消息后,怎么从里面提取内容呢?这里我们改造一下前面(一)中的代码,如下:
public void extractDOMFromSOAP() {try {URL wsdl = new URL("http://localhost:8080/test/HelloWorld?wsdl");String ns = "http://server.hw.demo/";String svcName = "HelloWorld";QName svcQName = new QName(ns, svcName);Service service = Service.create(wsdl, svcQName);String portName = "HelloWorldImplPort";QName portQName = new QName(ns, portName);Dispatch<SOAPMessage> dispatch = service.createDispatch(portQName,SOAPMessage.class, Service.Mode.MESSAGE);SOAPMessage soapMsg = MessageFactory.newInstance().createMessage();SOAPPart soapPart = soapMsg.getSOAPPart();SOAPEnvelope env = soapPart.getEnvelope();SOAPBody body = env.getBody();String iNs = "http://server.hw.demo/";String elementName = "sayHi";QName isbnQName = new QName(iNs, elementName);body.addBodyElement(isbnQName);soapMsg.writeTo(System.out);System.out.println();System.out.println("---invoke-----");SOAPMessage response = dispatch.invoke(soapMsg);response.writeTo(System.out);Document doc = response.getSOAPBody().extractContentAsDocument();NodeList nodes = (NodeList) doc.getElementsByTagName("return");String value = nodes.item(0).getTextContent();System.out.println();System.out.println("return:"+value);} catch (Exception e) {e.printStackTrace();}}
注意:Document和NodeList是org.w3c.dom包。
输出结果如下:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><sayHi xmlns="http://server.hw.demo/"/></SOAP-ENV:Body></SOAP-ENV:Envelope>---invoke-----<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header/><soap:Body><ns2:sayHiResponse xmlns:ns2="http://server.hw.demo/"><return>Hello </return></ns2:sayHiResponse></soap:Body></soap:Envelope>return:Hello
- 基于SAAJ的Web服务----(三)从SOAP消息中提取内容
- 基于SAAJ的Web服务----(一)创建和返回SOAP信封
- 基于SAAJ的Web服务----(二)将SOAP信封写出到输出流
- j2ee web service开发(三) SAAJ 带附件的soap消息
- WEB服务动态解析及调用技术的实现(基于WSDL4J及SAAJ)
- 基于SAAJ的Web服务----(四)使用原始的XML源和DOM创建web服务客户端
- Web服务中Soap消息的相关知识
- 使用SAAJ 和JAXM的 SOAP客户端及服务
- 基于SOAP协议的WEB服务研究
- 基于SOAP的Web服务AJAX客户端
- Web服务初探:用Demo学Web服务系列——Web服务中Soap消息的相关知识
- 使用SAAJ发送和接收SOAP消息
- 使用SAAJ发送和接收SOAP消息
- IBM WPS 或 IBM WESB 中基于 SOAP over JMS 的 Web 服务,第 1 部分
- Web 服务的开发经验总结2(TCPMonitor监听SOAP消息)
- 探讨基于SOAP的Web服务攻击及防范
- Java WebService-CXF-基于SOAP的Web服务
- 用Axis和SOAP开发基于JAX-RPC的Web服务(2)
- jboss修炼篇----创建jboss虚拟目录
- hello world
- 学生资助计划
- 一个Java程序员应该掌握的10项技能
- UISegmentedControl
- 基于SAAJ的Web服务----(三)从SOAP消息中提取内容
- 一道数模题(扑克牌中求期望)
- 青春只是成功的预热,所以请坚持下去
- 系统性能调优吐血总结分享
- 【物联网中间件平台-05】YFIOs策略开发指南
- dup、dup2介绍
- MFC WM_ERASEBKGND
- Windows下 maven3.0.4的安装步骤+maven配置本地仓库
- C++ 私有成员变量的理解