使用工具的緣由:java
一、 使用工具能夠更好的瞭解WebService請求的過程服務器
二、 使用工具WsExplore能夠獲取SOAP數據發送和接收的格式工具
三、 使用工具Tcp/Ip Monitor能夠監控攔截器請求頭和響應頭的具體數據編碼
什麼是SOAP? spa
SOAP是一種基於XML編碼規範的文本協議,簡單的說SOAP就是在HTTP的基礎上傳輸XML數據,以實現遠程調用【不管你的服務端是什麼語言書寫的,只要接收SOAP協議的XML數據,並返回SOAP協議的XML數據,就能夠被任何語言調用】.net
使用WsExplorer實例:驗證qq是否在線代理
採用qqOnlineWebServiceSoap中的qqCheckOnLine驗證時,返回的是code
qqCheckOnlineResponse
qqCheckOnlineResult (string): Norm
點擊source能夠看到詳細信息,信息以下:xml
1:這是發出的消息格式:
複製代碼 代碼以下:
http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://WebXml.com.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-
870931520
2:如下是接收到的XML格式
複製代碼 代碼以下:
http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
- http://WebXml.com.cn/">
N
採用qqOnlineWebServiceHttpGet或qqOnlineWebServiceHttpPost中的qqCheckOnline驗證時,返回的都是
Nhttp://WebXml.com.cn/">N>
使用Tcp/Ip Monitor
TCP/IP Monitor不只能夠看到SOAP數據,還能夠獲取HTTP請求和接收的頭信息。
一、位置:此工具位於:window>show view>other>MyEclipse Common(經常使用工具)>TCP/IP Monitor
二、此工具,至關於一個代理商,啓動後它將監聽本地的某個端口,而後再將請求轉發給指定的目標IP和端口。
獲取到數據後,再將數據原封不動的返回給客戶。在客戶看來,永遠首先訪問的都應該是這個代理,不然咱們將看不到數據傳輸的過程。
三、 配置選項:
在打開的TCP/IP Monitor界面上:view Menu(右上方向下的小箭頭)>Properties>Add(右側添加)
設置成如下屬性:
第一步:
1)local monitoring port(監聽本地的端口號):9876,隨意設置一個4位的端口號,一會將經過http://127.0.0.1:9876的形式訪問
2)host name(要監聽的服務器,如www.jb51.net):127.0.0.1 –由於本機發布了一個WebService因此監聽本機IP.也能夠是任意的主機。
3)Port(要監聽的目標服務器的端口):6666 - 由於咱們發佈的WebService爲http://127.0.0.1:6666/helloworld因此,6666是須要監聽的端口號。
4)Type(監聽的類型):
-- TCP/IP : 將使用原始地址繼續訪問下一個請求,如用戶輸入:http://127.0.0.1:9876/helloworld?wsdl此時將返回wsdl服務訪問地址同前。
-- HTTP :將使用目標地址繼續訪問下一個請求。如用戶輸入: http://127.0.0.1:9876/helloworld?wsdl在請求方法時將使用http://127.0.0.1:6666 /helloworld來訪問sayHi方法。此種方式將再也不會被代理。由於已經不是正在監聽的端口號了。
在監聽類型處,我選擇了TCP/IP,而後經過在地址欄輸入:http://127.0.0.1:9876/helloworld?wsdl,在返回的wsdl文件中查看:處地址的變化狀況。
time out:設置訪問不成功的鏈接時間,保持爲0,即不設置。
在設置好後,點OK按扭,而後再點右方的Start按扭,監聽便已經啓動。
第二步:
在MyEclipse的WebService上配置WSDL URL爲:http://127.0.0.1:9876/helloworld?wsdl,注意使用的是MyEclipse TCP/IP Monitor的端口。而不是直接去訪問咱們發佈的http://127.0.0.1:6666/helloworld?wsdl
如何修改wsdl文件的內容?
使用WebService的註解。
一、 @WebService-定義服務
二、 @WebMethod-定義方法
三、 @WebResult-定義返回值
四、@WebParam-定義參數
注意:對於註解,不一樣的版本支持程度不相同:
一、1.5不支持.
二、1.6.0_20前版本必須使用完整註解.
三、1.6.0_21之後能夠只使用@WebService對類進行註解.
註釋的做用:
經過WebService的註解,能夠更加形像的描述Web服務。從而生成WSDL文檔。
當修改了WebService註解以後,同時會影響客戶端生成的代碼。
調用的方法名和參數名也發生了變化。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
3:將上面的程序對外發布之後,咱們經過MyEclipse的WebService Explorer來訪問
你會發現和之前不同的提示信息,但其實,仍然仍是調用的那同一個方法。
4:再次使用wsimport –s . http://127.0.0.1:6666/helloworld?wsdl生成java代碼而後調用
如下是調用代碼(能夠用面目全非來形容,但完成的仍是一樣的工做。)
1 2 3 4 5 6 7 8 9 10 |
|