如何使用用于 XML 消息传递的 Java APIJava API for XML Messaging (JAXM))简化创建和发送 SOAP 消息的过程。

Web 服务的基础在于以标准格式发送和接收消息以便使所有系统都能理解。通常,那种格式是简单对象访问协议(Simple Object Access Protocol (SOAP))。SOAP 消息可以手工生成和发送,但是用于 XML 消息传递的 Java APIJAXM)使许多必需步骤(如创建连接或创建并发送实际消息)自动化。

这个过程包含五个步骤:

创建 SOAP 连接

创建 SOAP 消息

填充消息

发送消息

检索应答

一个基本的 SOAP 消息由包含两个主要部分(报头和主体)的封套组成。应用程序决定如何使用这些部分,但整个消息必须遵循特定的 XML 结构(soap.msg文件
):

用Soap消息调用Web Services<?xml version="1.0" encoding="UTF-8"?>
用Soap消息调用Web Services
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
用Soap消息调用Web Services
<soap:Body>
用Soap消息调用Web Services
<ns1:SayHello xmlns:ns1="http://boomga.com">
用Soap消息调用Web Services
</ns1:SayHello>
用Soap消息调用Web Services
</soap:Body>
用Soap消息调用Web Services
</soap:Envelope>
用Soap消息调用Web Services

请注意这个消息的结构。Envelope 包含Body 元素,而二者全都是 http://schemas.xmlsoap.org/soap/envelope/ 名称空间的一部分。整个消息将通过一个 SOAP 连接发送到一个 Web 服务中。

用Soap消息调用Web Servicespublic static void doSoapPost()

运行结果:

 

用Soap消息调用Web ServicesREQUEST:
用Soap消息调用Web Services
用Soap消息调用Web Services
<?xml version="1.0" encoding="UTF-8"?>
用Soap消息调用Web Services
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
用Soap消息调用Web Services
<soap:Body>
用Soap消息调用Web Services
<ns1:SayHello xmlns:ns1="http://boomga.com">
用Soap消息调用Web Services
</ns1:SayHello>
用Soap消息调用Web Services
</soap:Body>
用Soap消息调用Web Services
</soap:Envelope>
用Soap消息调用Web Services
用Soap消息调用Web Services
用Soap消息调用Web Services
用Soap消息调用Web ServicesRESPONSE:
用Soap消息调用Web Services
用Soap消息调用Web Services
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:SayHelloResponse xmlns:ns1="http://boomga.com"><ns1:out>dyk,Hell0</ns1:out></ns1:SayHelloResponse></soap:Body></soap:Envelope>
用Soap消息调用Web Services
用Soap消息调用Web Services

相关文章: