注:以下是關于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是一個消息的二傳手,它的前后都應該配置正確才行。
現在我們手頭有一個WebService測試客戶端,一個WebService工程運行在Tomcat服務器中,這就是TCPMon的兩端,我們需要把它配置進去。
首先,我們需要修改Tomcat的服務端口,你可以打開Tomcat目錄下的conf目錄下的server.xml文件,將Connector節點的port屬性值從8080改成8088(也可以是其他端口),如下所示:
<Connector port="8088" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" />
這樣,Tomcat服務器就在8088端口進行監聽了。
其次,我們需要讓TCPMon在8080端口進行監聽,并把收到的消息轉發到8088端口去。我們找到剛才打開的TCPMon程序,找到admin選項卡,在listen port #:右邊的文本框中寫入8080,在Target HostName右邊的文本框中輸入127.0.0.1,在Tatget port右邊的文本框中輸入8088。如下圖。
然后,再點擊add按鈕。一個名為Port 8080的選項卡會出現,這個界面將負責顯示截獲的SOAP消息。
接下來就可以啟動客戶端程序,客戶端會向原來一樣,向127.0.0.1所在的8080端口送出SOAP消息,而這個消息會被TCPMon截獲,然后轉送到127.0.0.1所在的8088端口去,然后Tomcat會收到這個SOAP消息交給負責處理的XFire Servlet,處理完的結果會通過TCPMon送回到客戶端。在這個過程中,SOAP消息就被完全截獲并顯示在Port 8080選項卡中了。如下圖:
最后,當你的SOAP消息調試結束后,別忘了吧Tomcat的端口改回到8080。
感謝您看到這里。