【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

时间: 2024-07-31 15:19:31

【webservice】调试方法篇(一)的相关文章

【webservice】调试方法篇(二)

前面提过webservice调试工具,如果有兴趣动手写测试代码,那挺好的啊! 我也是这样想的,有想法不妨去尝试哦.那么,我的程序中主要用到HttpURLConnection类,先拼接符合soap协议的xml字符串信息,再与webservice服务端建立连接后,发送http请求,接收完返回信息后打印出来.流程上和SoapUI 调试工具的差不多的,下面提供测试程序的代码,大家可以参考一下. import java.io.BufferedReader; import java.io.InputStre

linux设备驱动第四篇:驱动调试方法

linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法linux设备驱动第四篇:驱动调试方法 http://v.17173.com/playlist_18716517.htmlhttp://v.17173.com/playlist_18716521.

linux设备驱动第四篇:从如何定位oops的代码行谈驱动调试方法

上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试.在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序,那么驱动程序如何调试呢?我们知道在调试程序时经常遇到的问题就是野指针或者数组越界带来的问题,在应用程序中运行这种程序就会报segmentation fault的错误,而由于驱动程序的特殊性,出现此类情况后往往会直接造成系统宕机,并会抛出oops信息.那么我们如何来分析oops信息呢,甚至根据oop

linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法

上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试.在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序,那么驱动程序如何调试呢?我们知道在调试程序时经常遇到的问题就是野指针或者数组越界带来的问题,在应用程序中运行这种程序就会报segmentation fault的错误,而由于驱动程序的特殊性,出现此类情况后往往会直接造成系统宕机,并会抛出oops信息.那么我们如何来分析oops信息呢,甚至根据oop

Windows 下常见的反调试方法

稍稍总结一下在Crack或Rervese中比较常见的一些反调试方法,实现起来也比较简单,之后有写的Demo源码参考,没有太大的难度. ①最简单也是最基础的,Windows提供的API接口:IsDebuggerPresent(),这API实际上就是访问PEB的BeingDebugged标志来判断是否处于调试状态. if (IsDebuggerPresent()) //API接口 { AfxMessageBox(L"检测到调试器"); } else { AfxMessageBox(L&qu

Firefox下javascript调试方法

前面博文谈了一下IE浏览器下javascript的调试方法,今天没事干就把火狐浏览器(Firefox)下的javascript调试方法也看了一下,记录在此,希望对大家有所帮助. 我们这次使用的代码页面为document获取对象博文中的按name属性获取对象的代码. <html> <head> <title>getElementsByName</title> </head> <body> <form id="form1&

微信公众平台开发调试方法

在这篇微信公众平台开发教程中,我们将介绍如何进行微信公众平台上的开发调试方法. 一.方倍微信调试器 微信调试器是方倍工作室开发的用于微信公众平台接口开发调试的工具,具有Token校验.模拟关注及取消关注.发送文本/图片/语音/视频/位置/链接.模拟事件发送等功能.其原型是微擎的Emulator. 微信调试器目前不支持IE浏览器下的使用,请下载Chrome浏览器或下载Firefox浏览器. 微信调试器的地址是 http://debug.fangbei.org/ .其界面如下 使用方法 1. Tok

linux Ubuntu(Segmentation fault)段错误出现原因及调试方法

  在linux下编译了一个程序,尝试运行的时候出现: Segmentation fault (core dumped) 初步确认为...完全不知道是什么玩意. 于是找度娘了. ---------------------------------------------------------------------------- 出现原因 原来这个东西叫做段错误,就程序运行的时候出现内存错误.有很多原因会导致这样的内存错误,但是应该把这些问题归结于程序的错误,那么程序是出现了什么样的错误了呢,为

GDB中应该知道的几个调试方法

七.八年前写过一篇<用GDB调试程序>,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题.这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来.希望大家补充. 一.多线程调试多线程调试可能是问得最多的.其实,重要就是下面几个命令: info thread 查看当前进程的线程.thread <ID> 切换调试的线程为指定ID的线程