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