標籤:webservice 調試
開發webservice,遇到問題要知道報文的重要性。七層電腦網路,只懂最上面一層的話,永遠也只是個菜鳥。
肥來正題。在開發過程中,我用到的測試軟體有:tcpTrace、SoapUI 5.0.0、Wireshark。
1、tcpTrace,精悍好用的報文截看工具。超輕巧,整個工具300k(沒記錯的話)。雙擊開啟就是設定介面,監聽連接埠設為原生8811,轉寄的伺服器設為localhost,轉寄的連接埠設為8086,意思就是監聽原生8081連接埠了,這是個報文轉寄的工具,就是把發送到我本機8081連接埠的報文會轉到設定伺服器(我這裡是localhost)的8086連接埠,同時把請求報文內容、返回報文顯示出來。假設我原生tomcat是8086,但是告訴別人是8081,別人訪問過來,就能截獲到報文了,過程中必須開啟tcpTrace。
2、SoapUI ,看名字就知道了,專門用來做webservice調試的工具。我使用的時間 並不多,但是還是非常推薦這個測試軟體。雖然是E文,但拿到手即時就能用了,開源的,操作很簡單。因為我只用來做webservice測試,對於已經部署好的webservice,要拿到其wsdl。步驟大概是,建立SoapUI 工程,填入你的Project Name,Initial WSDL/WADL這一欄填入wsdl的URL地址或直接匯入wsdl檔案,類似的操作使用教程,網上可以很容易找到的,這裡就不再班門弄斧。
3、Wireshark,報文分析工具,前稱Ethereal,似曾相識吧。當你用了n多辦法也沒搞定,而廠家那邊派的只是啥都不懂的support,更糟糕的是,這個support還沒有聯絡開發人員程式員的本事,那一切只能靠自己了。當然,這種情況,最好的辦法是抓包分析。那時候我是負責服務端的開發,但是用戶端的代碼可是寫好了,規範文檔也是杠杠的,服務端必須照著用戶端的要求弄啊,感覺世界都翻轉過來了。由於代碼都是放到linux伺服器上面跑的,那麼我在linux上面的抓包指令大概這樣子:tcpdump -i eth1 host 10.234.153.81 and port 8811 -s1000 -w /usr/local/tmp/prc_.cap ,就是監聽我本地ip的8811連接埠的報文,讓對方訪問我這邊,最後拿到的報文儲存到/usr/local/tmp/ 的prc_.cap,用Wireshark開啟就可以了,很容易找到報文內容。
報文是個好東西,根據報文可以很容易知道哪裡出錯了,當你怎樣調試也沒成功時,分析一下報文,也許會發現是你的“命名空間”弄錯鳥。
轉載請說明出自whilejolly:http://blog.csdn.net/seedingly/article/details/39053327
【webservice】調試方法篇(一)