<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Vxworks 研究</title><link>http://blog.vckbase.com/eyesonyhm/category/1078.html</link><description>Vxworks 研究</description><managingEditor>遇君阁</managingEditor><dc:language>af</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>游游的家</dc:creator><title>利用telnet 命令调试webservices</title><link>http://blog.vckbase.com/eyesonyhm/archive/2006/12/18/23551.html</link><pubDate>Mon, 18 Dec 2006 05:58:00 GMT</pubDate><guid>http://blog.vckbase.com/eyesonyhm/archive/2006/12/18/23551.html</guid><wfw:comment>http://blog.vckbase.com/eyesonyhm/comments/23551.html</wfw:comment><comments>http://blog.vckbase.com/eyesonyhm/archive/2006/12/18/23551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/eyesonyhm/comments/commentRss/23551.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/eyesonyhm/services/trackbacks/23551.html</trackback:ping><description>&lt;P&gt;我遇到过这样一个问题：在使用Vxworks作为服务端发布出来的WebServices很难进行调试，比如客户端发出去一个请求数据包，而此时如果Vxworks服务端出错的话，出错信息返回却模棱两可，根本无法判断是客户端的问题，还是服务端的问题或者是网络的问题（其实当时的问题是我用get方式来请求web服务，所以服务器老是给我方法无法找到的提示）。于是我想了一个办法去调试WebServices以及获得服务端返回的数据包。&lt;BR&gt;&lt;BR&gt;我采用的是利用telnet命令来调试WebServices,具体的步骤如下: &lt;BR&gt;&lt;FONT color=#cc0000&gt;（这里我们还需假设服务端的WebServices有个方法是string echoString（string inputStr）,该方法的功能是客户端输入一个字符串发送给服务端，服务器将此字符串原封不动再返回给客户端。）&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;我们首先需要通过打开一个telnet连接来打开连通服务器端的WebServer,执行命令如下：&lt;BR&gt;telnet 10.0.1.5 80&lt;BR&gt;这个时候便打开了一个telnet会话连接，端口是80。&lt;BR&gt;接下来可以把下面这段代码拷贝到你的窗口中：&lt;BR&gt;################### BEGIN OF EXAMPLE REQUEST ################### &lt;/P&gt;
&lt;P&gt;Post /echostring/ HTTP/1.1&lt;BR&gt;Host: 10.0.1.5&lt;BR&gt;Content-Type: application/soap+xml; charset=utf-8&lt;BR&gt;Content-Length: nnn&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;BR&gt;&amp;lt;&lt;BR&gt;&amp;nbsp; soap:Envelope&lt;BR&gt;&amp;nbsp; xmlns:soap="&lt;A href="http://schemas.xmlsoap.org/soap/envelope/"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/A&gt;"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; soap:encodingStyle="&lt;A href="http://schemas.xmlsoap.org/soap/encoding/"&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/A&gt;"&lt;BR&gt;&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;lt;soap:Body xmlns:myNameSpace="urn:echoString"&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;myNameSpace:echoString&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;myNameSpace:inputString&amp;gt;Just_a_test&amp;lt;/myNameSpace:inputString&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/myNameSpace:echoString&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;/soap:Body&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;/P&gt;
&lt;P&gt;################### END OF EXAMPLE REQUEST ################### &lt;/P&gt;
&lt;P&gt;之后如果处理是正确的，服务端会返回如下的信息：&lt;BR&gt;HTTP/1.1 200 OK&lt;BR&gt;Server: gSOAP/2.7&lt;BR&gt;Content-Type: text/xml; charset=utf-8&lt;BR&gt;Content-Length: 509&lt;BR&gt;Connection: close&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR&gt;&amp;lt;SOAP-ENV:Envelope xmlns:SOAP-ENV="&lt;A href="http://schemas.xmlsoap.org/soap/envelope/"&gt;http://schemas.xmlsoap.org/soap/envelope/&lt;/A&gt;" xmlns:SOAP-E&lt;BR&gt;NC="&lt;A href="http://schemas.xmlsoap.org/soap/encoding/"&gt;http://schemas.xmlsoap.org/soap/encoding/&lt;/A&gt;" xmlns:xsi="&lt;A href="http://www.w3.org/2001/XMLSchema"&gt;http://www.w3.org/2001/XMLSchema&lt;/A&gt;&lt;BR&gt;-instance" xmlns:xsd="&lt;A href="http://www.w3.org/2001/XMLSchema"&gt;http://www.w3.org/2001/XMLSchema&lt;/A&gt;" xmlns:ns1="urn:echoString"&amp;gt;&amp;lt;SOAP-E&lt;BR&gt;NV:BodySOAP-ENV:encodingStyle="&lt;A href='http://schemas.xmlsoap.org/soap/encoding/"&gt;&lt;ns1:echoString'&gt;http://schemas.xmlsoap.org/soap/encoding/"&amp;gt;&amp;lt;ns1:echoString&lt;/A&gt;&lt;BR&gt;Response&amp;gt;&amp;lt;outputString&amp;gt;Just_a_test&amp;lt;/outputString&amp;gt;&amp;lt;/ns1:echoStringResponse&amp;gt;&amp;lt;/SOAP-ENV:Body&amp;gt;&lt;BR&gt;&amp;lt;/SOAP-ENV:Envelope&amp;gt;&lt;/P&gt;
&lt;P&gt;这里outputString是"Just_a_test"，当然如果处理出现错误该数据包也会返回相关的出错信息。&lt;BR&gt;其实大家已经看出来请求数据包完全就是一个soap的数据包，你完全可以参照3W的相关文档模拟得写一个。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;总结：&lt;/STRONG&gt;&lt;BR&gt;这个调试过程的主要作用有三个：&lt;BR&gt;1.在我不知道到底是服务器的问题，还是客户端的问题时，可以任意改动数据包中的一个属性来测试问题所在。&lt;BR&gt;2.可以获得返回的数据包。&lt;BR&gt;3.在没有开发任何客户端程序时进行服务端的WebServices调试。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/eyesonyhm/aggbug/23551.html" width = "1" height = "1" /&gt;</description></item></channel></rss>