Mac下使用Apache TCPMon

时间:2023-03-08 16:21:33
Mac下使用Apache TCPMon

Mac下使用Apache TCPMon


参考链接:

TCPMon Tutorial

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/

Mac下使用Apache TCPMon

注意 只是一个与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代码引入

Mac下使用Apache TCPMon

第二步

右件选择项目然后Properties -> Export

Mac下使用Apache TCPMon

第三步

选择Runnable JAR file并生成tcpmon-1.0-fixed.jar

Mac下使用Apache TCPMon

Mac下使用Apache TCPMon

第四步

我们可以双击运行tcpmon-1.0-fixed.jar

Mac下使用Apache TCPMon

坑结束

使用Apache TCPMon

如下图中

Mac下使用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启动端口