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启动端口