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");
//如果使用以下方式进行设置,会见<>转换为<和>
//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消息的方式多种多样,主要通过编程语言中的库或框架来实现。例如,在Java中,我们可以使用JAX-WS(Java API for XML Web Services)来创建SOAP客户端和服务端。在Python中,有suds库可以方便地生成和解析...
4. **错误处理和调试工具**:SDK还提供错误处理机制,帮助开发者诊断和解决在发送或接收SOAP消息时可能出现的问题。这可能包括错误代码、堆栈跟踪以及调试日志等功能。 5. **安全支持**:SOAP消息可能涉及敏感信息...
Web服务描述语言(WSDL)是另一种关键标准,它定义了XML Web服务所需的SOAP消息格式,以及如何描述服务的接口。WSDL允许服务声明接受RPC(Remote Procedure Call)消息,其中参数是编码的,或者声明使用Literal或...
在实际应用中,SOAP消息的创建和解析涉及XML解析、命名空间处理、错误处理等多个方面。为了确保兼容性和正确性,SOAP应用程序必须能够识别和处理正确的命名空间,并且忽略或处理不包含SOAP命名空间的消息。 总结...
1. **接收SOAP消息**:当应用收到SOAP消息时,通常以字符串或NSData形式存在。 2. **解析消息**:使用XML解析器,如NSXMLParser或KissXML,将SOAP消息转换为可操作的对象结构。 3. **处理Header和Body**:解析过程中...
SOAP Binding规定了SOAP消息如何与底层传输协议结合,最常见的就是与HTTP协议的结合。SOAP Binding描述了如何使用HTTP的POST方法发送SOAP消息,并如何设置适当的HTTP头信息。例如,`SOAPAction`头部字段用于指示所...
源码可能利用了特定的扩展库来处理SOAP消息,因此了解这些库的使用方法也是学习的重点。 8. 性能优化:对于大规模的SOAP消息处理,性能优化是关键。源码中可能包含了减少内存占用、提高解析速度等优化策略。 通过...
在设计和实现SOAP消息处理器时,开发者需要深入理解SOAP消息的结构和处理过程,以及WSDL文档的具体使用方法。这样做可以帮助开发者更加灵活地控制分布式应用,并能够根据特殊需求开发自定义的SOAP消息处理器。
### SOAP消息格式详解 #### 一、SOAP定义与特点 SOAP(Simple Object Access Protocol),即简单对象访问协议,是一种在分布式环境下实现不同系统之间信息交换的轻量级协议。其核心优势在于它基于广泛使用的XML...
在使用“soap-build”时,你需要有SOAP服务的WSDL(Web Service Description Language)文件,这是一个XML文档,定义了服务的接口、消息格式和调用方式。通过解析WSDL,工具能自动构建出符合规范的SOAP请求模板。...
3. **SOAP消息处理**: Java中的`javax.xml.soap`包提供了SOAPMessage、SOAPPart、SOAPEnvelope、SOAPHeader和SOAPBody等类,用于直接操作SOAP消息。 4. **处理SOAP响应**: 客户端接收到SOAP响应后,可以通过...
3. **发送HTTP请求**:封装好的SOAP消息以HTTP POST请求的方式发送到WebService的URL。HTTP协议提供了可靠的数据传输,保证了请求能够到达服务器。 4. **接收并解析SOAP响应**:服务器处理请求后,返回一个SOAP响应...
- **服务处理**:服务端解析SOAP消息,执行对应的服务操作。 - **返回响应**:服务端构建SOAP响应消息,并通过HTTP回应给客户端。 - **客户端解析响应**:客户端接收到响应后,解析SOAP消息以获取结果。 4. **...
然而,SOAP也有一些局限性,例如消息格式较大,导致效率较低;复杂的结构可能增加开发复杂性;而且SOAP通常不适用于实时、高吞吐量的应用场景。 在实际应用中,SOAP通常与其他技术结合,如WSDL用于描述服务接口,...
WSDL是一种XML格式,用于描述SOAP服务的接口、消息格式和调用方式。它是客户端与服务端通信的重要桥梁,提供了服务的元数据,让客户端能够自动发现和使用服务。 6. **SOAP与REST的区别:** SOAP通常被认为是重量...
- **兼容性**:不是所有SOAP服务端和客户端都支持MTOM,因此在设计系统时要考虑兼容性问题,确保客户端和服务端都能正确解析和处理包含BLOB和CLOB的SOAP消息。 综上所述,处理SOAP中的BLOB和CLOB数据需要理解编码...
### SOAP入门:深入理解与应用 #### 一、SOAP基础知识概览 SOAP(Simple Object Access Protocol)是一种...通过以上内容的学习,读者应能掌握SOAP消息的基本构建和处理方法,为后续的Web服务开发打下坚实的基础。
SOAP消息通常包含三部分:头部(Header)、主体(Body)和封装(Envelope),这些元素都以XML格式表示。 在上面提供的SOAP示例中,我们可以看到以下几个关键知识点: 1. **SOAP Envelope**: 这是SOAP消息的基础...
**SOAP消息格式** SOAP消息通常遵循以下结构: ```xml <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <SOAP-...
2. **SOAP命名空间管理**:理解如何在SOAP消息中正确处理命名空间,因为XML元素可能属于不同的命名空间,这在解析和生成XML时是非常关键的。 3. **错误处理**:观察QtSoap是如何处理解析错误、网络错误和其他可能...