在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。

如何用Apache TCPMon来截获SOAP消息的更多相关文章

  1. Web Service进阶(二)如何用Apache TCPMon来截获SOAP消息

    注:以下是关于TCPMon的一些使用常识,如果不需要或是已经熟悉就不用往下看了. 在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPM ...

  2. (七)发送、接收SOAP消息(以HttpClient方式)(2)

    一.为什么要用soap 原本我们使用web服务都是根据wsdl生成客户端(生成一堆java文件)然后再调用,本章节讲解如何用soap消息来替代这种方式. 二.SOAP消息格式 SOAP(简单对象访问协 ...

  3. SOAP消息创建

    看了SOAP消息分析之后,大家对soap消息应该有了一个初步的认识,那么怎样自己编写一个soap消息呢? 先来创建一个简单的soap消息: @Test public void test1(){ try ...

  4. (六)发送、接收SOAP消息(1)

    一.为什么要用soap 原本我们使用web服务都是根据wsdl生成客户端(生成一堆java文件)然后再调用,本章节讲解如何用soap消息来替代这种方式. 二.SOAP消息格式 SOAP(简单对象访问协 ...

  5. 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

    在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如 ...

  6. Mac下使用Apache TCPMon

    Mac下使用Apache TCPMon 参考链接: TCPMon Tutorial Anyone know how to get TCPMON working on a mac? Apache TCP ...

  7. soap消息机制 讲解

    SOAP(Simple Object Access Protocol,简单对象访问协议)作为一种信息交互协议在分布式应用中非常广泛,如WebService.在使用.Net开发WebService时候, ...

  8. Web Service学习之八:Soap消息详解

    一.区别概念 WSDL是网络服务描述语言,是XML文档:它包含一系列描述某个web service的定义或者说是规则.尤其是定义了传输Sope消息的结构 Soap:简单对象访问协议,是交换数据的一种协 ...

  9. SOAP消息的传递

    上一篇说了SOAP消息的创建,那么创建好了的SOAP消息要怎么发送给服务端呢? public class SoapTest { private String wsdlUri = "http: ...

随机推荐

  1. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem G: Check The Check(模拟国际象棋)

    Problem G: Check The Check Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 10  Solved: 3[Submit][Statu ...

  2. C#(去、过滤)掉字符中的换行符

    本文介绍的方法需要先导入命名空间:usingSystem.Text.RegularExpressions; 字符串里所有的的换行符都去掉:textStr = Regex.Replace(textStr ...

  3. 如何在Eclipse中查看Android源码或者第三方组件包源码

    文章出处:http://blog.csdn.net/cjjky/article/details/6535426 在学习过程中如果经常阅读源码,理解程度会比较深,学习效率也会比较高,那么如何方便快捷的阅 ...

  4. Codeforces Gym 100513G G. FacePalm Accounting

    G. FacePalm Accounting Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100513 ...

  5. loj 1013(LCS+记忆化搜索)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25839 思路:第一小问可以很快求出了,两个字符串的长度-LCS,然 ...

  6. 编译fdk-aac for ios

    Build all: build-fdk-aac.sh Build for some architectures: build-fdk-aac.sh armv7s x86_64 Build unive ...

  7. Java的锁优化

    高效并发是从JDK 1.5到JDK 1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning).锁消除(Lo ...

  8. MapReduce的输入输出格式

    默认的mapper是IdentityMapper,默认的reducer是IdentityReducer,它们将输入的键和值原封不动地写到输出中. 默认的partitioner是HashPartitin ...

  9. Revit二次开发示例:DisableCommand

    Revit API 不支持调用Revit内部命令,但可以用RevitCommandId重写它们(包含任意选项卡,菜单和右键命令).使用RevitCommandId.LookupCommandId()可 ...

  10. Making raycast ignore multiple layers

    I know how to make the raycast ignore a layer but I want it to ignore layers 9 and 10 but collide wi ...