Mac下使用Apache TCPMon
參考連結:
Anyone know how to get TCPMON working on a mac?
Apache TCPMon
是一個開源的檢查TCP網路資料流的除錯工具。TCPMon處在客戶端(消費者)和伺服器之間,客戶端與TCPMon連線,然後TCPMon將資料傳送給伺服器,並將資料顯示到它的客戶端顯示。
Apache TCPMon 的下載地址:
http://archive.apache.org/dist/ws/tcpmon/1.0/
注意 只是一個與code.google.com上不同的TCPMon
下面是一個坑
如果按照Apache或者網上很多連結裡面搜尋到的使用方法,在mac下直接執行
build/tcpmon.sh
然後會得到系統反饋
-bash: build/tcpmon.sh: Permission denied
即使修改檔案許可權
sudo chmod 755 'build/tcpmon.sh'
仍然會得到一個執行錯誤說找不到“TCPMon”
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/ws/commons/tcpmon/TCPMon
Caused by: java.lang.ClassNotFoundException: org.apache.ws.commons.tcpmon.TCPMon
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
如果嘗試通過java執行
$ java -jar tcpmon-1.0.jar
Failed to load Main-Class manifest attribute from tcpmon-1.0.jar
所以這裡的jar包打的有問題,我們需要重新生成這個jar
在apache.org上下載tcpmon-1.0.src.zip,然後用Eclipse工程開啟重新生成新的jar(我這裡用的是JDK7)
第一步
新建一個工程並將src裡面的java程式碼引入
第二步
右件選擇專案然後Properties -> Export
第三步
選擇Runnable JAR file並生成tcpmon-1.0-fixed.jar
第四步
我們可以雙擊執行tcpmon-1.0-fixed.jar
坑結束
使用Apache TCPMon
如下圖中
“Listen Port # 9000”,是客戶端連線TCPMon的埠號
client.setServiceClass(HelloWorld.class); client.setAddress("http://localhost:9001/cxf/services/HelloService"); HelloWorld helloworld = (HelloWorld) client.create(); System.out.println(helloworld.sayHi("Richard"));
- “Target Hostname 127.0.0.1”,是本地IP
“Target Port # 8080”,通常是本地Tomcat啟動埠