如何用Apache TCPMon來截獲SOAP消息

openkk 13年前發布 | 47K 次閱讀 TCPMon WEB服務/RPC/SOA

注:以下是關于TCPMon的一些使用常識,如果不需要或是已經熟悉就不用往下看了。

在WebService服務器和客戶機之間會傳遞SOAP消息,有時我們需要得到這些消息以便調試,而Apache的TCPMon可以幫助我們做到這一點。

TCPMon的下載地址在 http://ws.apache.org/commons/tcpmon/download.cgi,找到Binary Distribution,
下載后會得到一個tcpmon-1.0-bin.zip的包,解開后進去\tcpmon-1.0-bin\build目錄,雙擊tcpmon.bat就可以執行程序了。

這里有必要對tcpmon說明一下,它實際上是個代理,起一個消息轉發的作用,監視的是轉發出去的消息。最終,消息還是要送到具體的地址和端口,否則響應就不正確了。也就是說,TCPMon是一個消息的二傳手,它的前后都應該配置正確才行。
如何用Apache TCPMon來截獲SOAP消息

現在我們手頭有一個WebService測試客戶端,一個WebService工程運行在Tomcat服務器中,這就是TCPMon的兩端,我們需要把它配置進去。

首先,我們需要修改Tomcat的服務端口,你可以打開Tomcat目錄下的conf目錄下的server.xml文件,將Connector節點的port屬性值從8080改成8088(也可以是其他端口),如下所示:


這樣,Tomcat服務器就在8088端口進行監聽了。

其次,我們需要讓TCPMon在8080端口進行監聽,并把收到的消息轉發到8088端口去。我們找到剛才打開的TCPMon程序,找到admin選項 卡,在listen port #:右邊的文本框中寫入8080,在Target HostName右邊的文本框中輸入127.0.0.1,在Tatget port右邊的文本框中輸入8088。如下圖。
如何用Apache TCPMon來截獲SOAP消息

然后,再點擊add按鈕。一個名為Port 8080的選項卡會出現,這個界面將負責顯示截獲的SOAP消息。

接下來就可以啟動客戶端程序,客戶端會向原來一樣,向127.0.0.1所在的8080端口送出SOAP消息,而這個消息會被TCPMon截獲,然后轉送 到127.0.0.1所在的8088端口去,然后Tomcat會收到這個SOAP消息交給負責處理的XFire Servlet,處理完的結果會通過TCPMon送回到客戶端。在這個過程中,SOAP消息就被完全截獲并顯示在Port 8080選項卡中了。如下圖:
如何用Apache TCPMon來截獲SOAP消息

最后,當你的SOAP消息調試結束后,別忘了吧Tomcat的端口改回到8080。

感謝您看到這里。

轉自:http://www.blogjava.net/heyang/archive/2010/12/10/340294.html
 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!