有些莫名其妙不可预知的问题,可能与网络通信有关,一般借助于Httpwatch查看具体情况,但是有些地方不能走Httpwatch,比如:
- 服务器给另外一个服务器发请求,也不知道错对与否;
- SOAP服务是否正确
为了诊断问题,需要将信息透明化,所以借助于第三方类似于代理的拦截工具,这类工具监听指定端口,将收到的信息转给指定服务器指定端口,常用有两个:
1 Windows上运行的TCP Trace
工具:tcpTrace.exe
中转工具原理如下所示:
- 在192.168.1.186机器上可直接访问192.168.1.88机器8080端口的test web应用,运行DataExchange出现了问题
- 为了了解双方通信情况,在双方之间加入了类似代理的工具,让186给88发的请求直接发给工具,再由工具转给88服务器;
- 假定在186上部署了工具,工具设置监听的端口为86,转发目标位88的8080端口
那么需要在TCP Trace上按照这样设置:
- DataExchange中需要将test地址由192.168.1.88:8080改为192.168.1.186:86,那么运行DataExchange时发出的请求都会先经过TCPTrace工具再转到100.88的服务器上
- 或者在任何地方键入http://192.168.1.186:86/test/ 等同于访问100.88上的test
2 纯Java版本的TCP Trace,可运行在Linux中
Edit
用户没有Windows机器时,需要使用这个版本的工具,点击链接下载:TCPTrace-Java.rar
Linux上修改start.sh中的参数,第一个参数为监听的端口,第二个参数为目标IP,第三个参数为目标IP的端口,第四个参数为转发请求的编码
Windows修改start.sh中的参数,基本一看就明白
该贴由koei转至本版2012-2-15 19:25:43