【webservice】调试方法篇(一)
开发webservice,遇到问题要知道报文的重要性。七层计算机网络,只懂最上面一层的话,永远也只是个菜鸟。
肥来正题。在开发过程中,我用到的测试软件有:tcpTrace、SoapUI 5.0.0、Wireshark。
1、tcpTrace,精悍好用的报文截看工具。超轻巧,整个工具300k(没记错的话)。双击打开就是设置界面,监听端口设为本机的8811,转发的服务器设为localhost,转发的端口设为8086,意思就是监听本机的8081端口了,这是个报文转发的工具,就是把发送到我本机8081端口的报文会转到设定服务器(我这里是localhost)的8086端口,同时把请求报文内容、返回报文显示出来。假设我本机的tomcat是8086,但是告诉别人是8081,别人访问过来,就能截获到报文了,过程中必须开启tcpTrace。
2、SoapUI ,看名字就知道了,专门用来做webservice调试的工具。我使用的时间 并不多,但是还是非常推荐这个测试软件。虽然是E文,但拿到手即时就能用了,开源的,操作很简单。因为我只用来做webservice测试,对于已经部署好的webservice,要拿到其wsdl。步骤大概是,新建SoapUI 工程,填入你的Project Name,Initial WSDL/WADL这一栏填入wsdl的URL地址或直接导入wsdl文件,类似的操作使用教程,网上可以很容易找到的,这里就不再班门弄斧。
3、Wireshark,报文分析工具,前称Ethereal,似曾相识吧。当你用了n多办法也没搞定,而厂家那边派的只是啥都不懂的support,更糟糕的是,这个support还没有联系开发者程序员的本事,那一切只能靠自己了。当然,这种情况,最好的办法是抓包分析。那时候我是负责服务端的开发,但是客户端的代码可是写好了,规范文档也是杠杠的,服务端必须照着客户端的要求弄啊,感觉世界都翻转过来了。由于代码都是放到linux服务器上面跑的,那么我在linux上面的抓包指令大概这样子:tcpdump -i eth1 host 10.234.153.81 and port 8811 -s1000 -w /usr/local/tmp/prc_.cap ,就是监听我本地ip的8811端口的报文,让对方访问我这边,最后拿到的报文保存到/usr/local/tmp/ 的prc_.cap,用Wireshark打开就可以了,很容易找到报文内容。
报文是个好东西,根据报文可以很容易知道哪里出错了,当你怎样调试也没成功时,分析一下报文,也许会发现是你的“命名空间”弄错鸟。
转载请说明出自whilejolly:http://blog.csdn.net/seedingly/article/details/39053327
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。