`

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); 
分享到:
评论

相关推荐

    SOAP消息和WSDL

    创建SOAP消息的方式多种多样,主要通过编程语言中的库或框架来实现。例如,在Java中,我们可以使用JAX-WS(Java API for XML Web Services)来创建SOAP客户端和服务端。在Python中,有suds库可以方便地生成和解析...

    SOAP消息处理包

    4. **错误处理和调试工具**:SDK还提供错误处理机制,帮助开发者诊断和解决在发送或接收SOAP消息时可能出现的问题。这可能包括错误代码、堆栈跟踪以及调试日志等功能。 5. **安全支持**:SOAP消息可能涉及敏感信息...

    自定义SOAP消息详细解释

    Web服务描述语言(WSDL)是另一种关键标准,它定义了XML Web服务所需的SOAP消息格式,以及如何描述服务的接口。WSDL允许服务声明接受RPC(Remote Procedure Call)消息,其中参数是编码的,或者声明使用Literal或...

    SOAP结构简析与编写方式

    在实际应用中,SOAP消息的创建和解析涉及XML解析、命名空间处理、错误处理等多个方面。为了确保兼容性和正确性,SOAP应用程序必须能够识别和处理正确的命名空间,并且忽略或处理不包含SOAP命名空间的消息。 总结...

    Soap格式数据解析

    1. **接收SOAP消息**:当应用收到SOAP消息时,通常以字符串或NSData形式存在。 2. **解析消息**:使用XML解析器,如NSXMLParser或KissXML,将SOAP消息转换为可操作的对象结构。 3. **处理Header和Body**:解析过程中...

    soap白皮书 TXT格式

    SOAP Binding规定了SOAP消息如何与底层传输协议结合,最常见的就是与HTTP协议的结合。SOAP Binding描述了如何使用HTTP的POST方法发送SOAP消息,并如何设置适当的HTTP头信息。例如,`SOAPAction`头部字段用于指示所...

    易语言源码易语言soap消息解析源码.rar

    源码可能利用了特定的扩展库来处理SOAP消息,因此了解这些库的使用方法也是学习的重点。 8. 性能优化:对于大规模的SOAP消息处理,性能优化是关键。源码中可能包含了减少内存占用、提高解析速度等优化策略。 通过...

    SOAP消息处理器的设计与实现

    在设计和实现SOAP消息处理器时,开发者需要深入理解SOAP消息的结构和处理过程,以及WSDL文档的具体使用方法。这样做可以帮助开发者更加灵活地控制分布式应用,并能够根据特殊需求开发自定义的SOAP消息处理器。

    Soap 消息.doc

    ### SOAP消息格式详解 #### 一、SOAP定义与特点 SOAP(Simple Object Access Protocol),即简单对象访问协议,是一种在分布式环境下实现不同系统之间信息交换的轻量级协议。其核心优势在于它基于广泛使用的XML...

    soap-build生成Soap接口请求报文

    在使用“soap-build”时,你需要有SOAP服务的WSDL(Web Service Description Language)文件,这是一个XML文档,定义了服务的接口、消息格式和调用方式。通过解析WSDL,工具能自动构建出符合规范的SOAP请求模板。...

    soap与java编程指南

    3. **SOAP消息处理**: Java中的`javax.xml.soap`包提供了SOAPMessage、SOAPPart、SOAPEnvelope、SOAPHeader和SOAPBody等类,用于直接操作SOAP消息。 4. **处理SOAP响应**: 客户端接收到SOAP响应后,可以通过...

    客户端调用webservice方式一(soap请求)

    3. **发送HTTP请求**:封装好的SOAP消息以HTTP POST请求的方式发送到WebService的URL。HTTP协议提供了可靠的数据传输,保证了请求能够到达服务器。 4. **接收并解析SOAP响应**:服务器处理请求后,返回一个SOAP响应...

    Soap方式调用WebService

    - **服务处理**:服务端解析SOAP消息,执行对应的服务操作。 - **返回响应**:服务端构建SOAP响应消息,并通过HTTP回应给客户端。 - **客户端解析响应**:客户端接收到响应后,解析SOAP消息以获取结果。 4. **...

    SOAP资料,介绍SOAP协议

    然而,SOAP也有一些局限性,例如消息格式较大,导致效率较低;复杂的结构可能增加开发复杂性;而且SOAP通常不适用于实时、高吞吐量的应用场景。 在实际应用中,SOAP通常与其他技术结合,如WSDL用于描述服务接口,...

    SOAP协议规范——SOAP详解

    WSDL是一种XML格式,用于描述SOAP服务的接口、消息格式和调用方式。它是客户端与服务端通信的重要桥梁,提供了服务的元数据,让客户端能够自动发现和使用服务。 6. **SOAP与REST的区别:** SOAP通常被认为是重量...

    在SOAP消息中传输BLOB和CLOB数据

    - **兼容性**:不是所有SOAP服务端和客户端都支持MTOM,因此在设计系统时要考虑兼容性问题,确保客户端和服务端都能正确解析和处理包含BLOB和CLOB的SOAP消息。 综上所述,处理SOAP中的BLOB和CLOB数据需要理解编码...

    SOAP入门

    ### SOAP入门:深入理解与应用 #### 一、SOAP基础知识概览 SOAP(Simple Object Access Protocol)是一种...通过以上内容的学习,读者应能掌握SOAP消息的基本构建和处理方法,为后续的Web服务开发打下坚实的基础。

    SOAP示例,轻松学SOAP

    SOAP消息通常包含三部分:头部(Header)、主体(Body)和封装(Envelope),这些元素都以XML格式表示。 在上面提供的SOAP示例中,我们可以看到以下几个关键知识点: 1. **SOAP Envelope**: 这是SOAP消息的基础...

    SOAP 的简要 描述

    **SOAP消息格式** SOAP消息通常遵循以下结构: ```xml &lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"&gt; &lt;SOAP-...

    QtSoap源码 仅供学习参考

    2. **SOAP命名空间管理**:理解如何在SOAP消息中正确处理命名空间,因为XML元素可能属于不同的命名空间,这在解析和生成XML时是非常关键的。 3. **错误处理**:观察QtSoap是如何处理解析错误、网络错误和其他可能...

Global site tag (gtag.js) - Google Analytics