`

SOAP消息格式与处理方式

阅读更多

soap消息的创建
//1、创建消息工厂 
MessageFactory factory = MessageFactory.newInstance(); 
//2、根据消息工厂创建SoapMessage 
SOAPMessage message = factory.createMessage(); 
//3、创建SOAPPart 
SOAPPart part = message.getSOAPPart(); 
//4、获取SOAPENvelope 
SOAPEnvelope envelope = part.getEnvelope(); 
//5、可以通过SoapEnvelope有效的获取相应的Body和Header等信息 
SOAPBody body = envelope.getBody(); 
//6、根据Qname创建相应的节点(QName就是一个带有命名空间的节点) 
//<ns:add xmlns="http://java.zttc.edu.cn/webservice"/> 
QName qname = new QName("http://java.zttc.edu.cn/webservice", "add","ns"); 
//如果使用以下方式进行设置,会见<>转换为&lt;和&gt 
//body.addBodyElement(qname).setValue("<a>1</a><b>2</b>"); 
SOAPBodyElement ele = body.addBodyElement(qname); 
ele.addChildElement("a").setValue("22"); ele.addChildElement("b").setValue("33"); 
//打印消息信息 
message.writeTo(System.out);

消息传递

//1、创建服务(Service) 
URL url = new URL(wsdlUrl); 
QName sname = new QName(ns,"MyServiceImplService"); 
Service service = Service.create(url,sname); 
             
//2、创建Dispatch 
Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns,"MyServiceImplPort"),SOAPMessage.class,Service.Mode.MESSAGE); 
             
//3、创建SOAPMessage 
SOAPMessage msg = MessageFactory.newInstance().createMessage(); 
SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope(); 
SOAPBody body = envelope.getBody(); 
             
//4、创建QName来指定消息中传递数据 
QName ename = new QName(ns,"add","nn");//<nn:add xmlns="xx"/> 
SOAPBodyElement ele = body.addBodyElement(ename); 
ele.addChildElement("a").setValue("22"); 
ele.addChildElement("b").setValue("33"); 
msg.writeTo(System.out); 
System.out.println("\n invoking....."); 
                     
//5、通过Dispatch传递消息,会返回响应消息 
SOAPMessage response = dispatch.invoke(msg); 
response.writeTo(System.out); 
System.out.println(); 
             
//6、响应消息处理,将响应的消息转换为dom对象 
Document doc = response.getSOAPPart().getEnvelope().getBody().extractContentAsDocument(); 
String str = doc.getElementsByTagName("addResult").item(0).getTextContent(); 
System.out.println(str); 
分享到:
评论

相关推荐

    使用Java搭建Webservices应用程序结构.doc

    它是一种标准化的传输消息的XML消息格式。   WSDL WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务的描述语言。其主要目的在于web service的提供者将自己的web服务的...

    Android手机天气预报项目报告.docx

    条SOAP消息就是一个包含有一个必需的SOAP的封装包,一个可选的SOAP标头和一个必需的SOAP体块的XML文档。 XML文档在Android平台上的解析可以通过SAX的方式方便快速的完成。解析Android应用程序中获得的列表数据XML...

    (完整)Android手机天气预报项目报告.doc

    2.2 技术支持 本软件使用基于SOAP(简单对象访问协议)的Web Service技术来实现与服务器端的信息交互,获取网络上的数据.Web Service使用基于XML技术的消息处理,作为基本的数据通讯方式.Web Service建立在一些通用...

    Android手机天气预报项目报告(1).docx

    一条SOAP消息就是一个包含有一个必需的SOAP的封装包,一个可选的SOAP标头和一个必需的SOAP体块的XML文档。 Android手机天气预报项目报告(1)全文共15页,当前为第3页。 XML文档在Android平台上的解析可以通过SAX的...

    Android手机天气预报项目报告(2).docx

    而所有的SOAP消息都使用XML编码.一条SOAP消息就是一个包含有一个必需的SOAP的封装包,一个可选的SOAP标头和一个必需的SOAP体块的XML文档。 XML文档在Android平台上的解析可以通过SAX的方式方便快速的完成.解析...

    XMLSpy 2011中文版破解补丁

    XMLSpy是所有XML编辑器中做得非常好的一个软件,支持WYSWYG。支持Unicode、多字符集,支持Well-formed和Validated两种类型的XML文档,支持...它用一种和具体语言无关的抽象方式定义了给定Web服务收发的有关操作和消息。

    JAVA_API1.6文档(中文)

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    XMLSPY 2010 企业版

     它用一种和具体语言无关的抽象方式定义了给定Web服务收发的有关操作和消息。  更多情况,可以看看 IBM 中文站:借助 RDF 增强 WSDL + ZDNET CHINA 特稿: 用WSDL定义Web服务 HTML 导入,将 HTML 网页分开导入成为 ...

    ASP EXCEL导入SQL

    我们今天以企业用户常用的CRM系统,来看一看标准的SaaSCRM...这里并不是说明SOAP网络服务消息包含义病毒,而是说明HTTP是无法处理SOAP信息包究竟好不好,需要额外的软件工具解决这一问题,包括防火墙也用不上和管不了...

    [Java参考文档].JDK_API 1.6

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    Java 1.6 API 中文 New

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    PHP和MySQL WEB开发(第4版)

    2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 ...

    XML高级编程pdf

    11.4 SOAP 11.4.1 XML-RPC++ 11.4.2 实现 11.4.3 结论 11.5 WebDAV 11.6 小结 第12章 电子商务和XML 12.1 什么是电子商务 12.1.1 对客户直接销售 12.1.2 企业对企业交易 12.1.3 信息共享和内容联合 ...

    XML高级编程 (Extensible Markup Language)

    1.3 Web体系结构:过去与未来 1.3.1 传统Web体系结构 1.3.2 XML下的Web体系结构 1.4 XML基本特征 1.5 词汇表 1.5.1 科学词汇表 1.5.2 商业词汇表 1.5.3 法律词汇表 1.5.4 医学词汇表 1.5.5 计算机词汇表 ...

    XML 高级编程(高清版)

    11.4 SOAP 11.4.1 XML-RPC++ 11.4.2 实现 11.4.3 结论 11.5 WebDAV 11.6 小结 第12章 电子商务和XML 12.1 什么是电子商务 12.1.1 对客户直接销售 12.1.2 企业对企业交易 12.1.3 信息共享和内容联合 ...

    PHP和MySQL Web开发第4版pdf以及源码

    2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的...

    PHP和MySQL Web开发第4版

    2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的...

    java api最新7.0

    java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...

    XML高级编程

    11.4 SOAP 465 11.4.1 XML-RPC++ 465 11.4.2 实现 478 11.4.3 结论 493 11.5 WebDAV 493 11.6 小结 494 第12章 电子商务和XML 495 12.1 什么是电子商务 496 12.1.1 对客户直接销售 496 12.1.2 企业对企业交易 497 ...

Global site tag (gtag.js) - Google Analytics