webservice--SOAP

SOAP

一、定义

l  SOAP即简单对象访问协议,他是使用http发送的XML格式的数据,它可以跨平台,跨防火墙,SOAP不是webservice的专有协议。

l  SOAP=http+xml

 webservice--SOAP_第1张图片

二、协议格式

必需有Envelope 元素,此元素将整个 XML 文档标识为一条 SOAP 消息

l  可选的 Header 元素,包含头部信息

必需有Body元素,包含所有的调用和响应信息

l  可选的 Fault 元素,提供有关在处理此消息所发生错误的信息


三、TCP/IP Monitor

1、代理原理

webservice--SOAP_第2张图片
2、配置

webservice--SOAP_第3张图片
webservice--SOAP_第4张图片

3、测试

在浏览器中输入代理服务地址,能正常访问,代表代理服务器设置成功


四、SOAP1.1

请求:
POST /weather HTTP/1.1
Accept: text/xml, multipart/related
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://ws.jaxws.ws.itcast.cn/WeatherInterfaceImpl/queryWeatherRequest"
User-Agent: JAX-WS RI 2.2.4-b01
Host: 127.0.0.1:54321
Connection: keep-alive
Content-Length: 214



北京



响应:
HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: text/xml; charset=utf-8
Date: Thu, 26 Nov 2015 03:14:29 GMT








五、SOAP1.2

l  如何发布SOAP1.2服务端

Ø  Jaxws不支持SOAP1.2服务端发布,直接发布会报如下异常


Ø  如果想发布SOAP1.2服务端,需要在服务端引入第三方JARjaxws-ri-2.2.8

Ø  在实现类上加入如下注解

@BindingType(SOAPBinding.SOAP12HTTP_BINDING)

 

请求:

POST /weather HTTP/1.1
Accept: application/soap+xml, multipart/related
Content-Type: application/soap+xml; charset=utf-8;
action="http://ws.jaxws.ws.itcast.cn/WeatherInterfaceImpl/queryWeatherRequest"
User-Agent: JAX-WS RI 2.2.4-b01
Host: 127.0.0.1:54321
Connection: keep-alive
Content-Length: 212



北京



响应:
HTTP/1.1 200 OK
Transfer-encoding: chunked
Content-type: application/soap+xml; charset=utf-8
Date: Thu, 26 Nov 2015 03:25:24 GMT








六、SOAP1.1和SOAP1.2区别

l  相同点:

Ø  请求发送方式相同:都是使用POST

Ø  协议内容相同:都有Envelope和Body标签

l  不同点:

Ø  数据格式不同:content-type不同

n  SOAP1.1:text/xml;charset=utf-8

n  SOAP1.2:application/soap+xml;charset=utf-8

Ø     命名空间不同:

n  SOAP1.1:http://schemas.xmlsoap.org/soap/envelope/

n  SOAP1.2:http://www.w3.org/2003/05/soap-envelope


七、UDDI

UDDI是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。

UDDI,英文为"Universal Description, Discovery and Integration",可译为通用描述、发现与集成服务

 

UDDI 并不像 WSDL SOAP 一样深入人心,因为很多时候,使用者知道 Web 服务的位置(通常位于公司的企业内部网中)。




你可能感兴趣的:(JavaEE,webservice)