Web Service的调用本质:
(1) 客户端把需要调用的参数,转换为XML文档片段(SOAP消息)
(2) 客户端通过网络把XML文档片段传给远程服务器
(3) 服务器接收XML文档片段
(4) 服务器解析XML文档片段,提取其中的数据,并把数据转换为调用所需的参数
(5) 服务器执行方法
(6) 得到方法返回值,服务器把方法返回值转换为XML文档片段(SOAP消息)
(7) 服务器通网络把XML文档片段传给远程客户端
(8) 客户端接收XML文档片段
(9) 客户端解析XML文档片段,提取其中的数据,并把数据转换为调用返回值
Web Service的三个技术基础
-WSDL
WebService接口
1、type(标准的Schema)
2、2N的message
3、portType –N个operation
WebService
1、 binding元素–N个更详细的operation
2、 Service -制定Web Service的服务地址
-SOAP
Header
Header是可选的。由程序员控制添加
Body
Body元素总是默认 的,Body元素里可有两重情况
-当Web Service交互正确时,Body元素里的内容有WSDL控制
-当Web Service交互出错时,Body将是Fault子元素
Web Service急需解决的问题:如何进行权限控制?
解决思路是:服务器端要求input消息总是携带有用户名,密码信息
----如果没有用户名、密码信息,直接拒绝调用
如果不用CFX等框架,SOAP消息的生成、解析都是由程序员负责的,无论是添加用户名、密码信息,还是提取用户名、密码信息,都可由程序员的代码完成
如果用CFX等框架,SOAP消息的生成、解析都是由CFX等框架负责的
拦截器
为了让程序员能访问,并修改CFX框架所生成的SOAP消息,CFX提供了拦截器
服务器端添加拦截器
(1) 获取Endpoint的publish方法返回值
(2) 调用该方法的返回值的getInterceptor,getOutInterceptor