﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><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>BlogJava-Knight of the round table-文章分类-web service</title><link>http://www.blogjava.net/wansong/category/46636.html</link><description>wansong</description><language>zh-cn</language><lastBuildDate>Mon, 19 Dec 2011 15:06:42 GMT</lastBuildDate><pubDate>Mon, 19 Dec 2011 15:06:42 GMT</pubDate><ttl>60</ttl><item><title>web service 双通道 </title><link>http://www.blogjava.net/wansong/articles/366085.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Sun, 11 Dec 2011 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/366085.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/366085.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/366085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/366085.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/366085.html</trackback:ping><description><![CDATA[<div>http://lixinye0123.iteye.com/blog/318272&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; axis2的example<br /><br /><div>http://www.orientware.org/viewArticles.do?action=browse&amp;columnId=27&amp;id=75&amp;flag=home&nbsp;&nbsp;&nbsp;&nbsp; 分层结构的web服务</div></div><img src ="http://www.blogjava.net/wansong/aggbug/366085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-12-11 10:44 <a href="http://www.blogjava.net/wansong/articles/366085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdk 6 jax-ws 例子</title><link>http://www.blogjava.net/wansong/articles/364521.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Tue, 22 Nov 2011 05:37:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/364521.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/364521.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/364521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/364521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/364521.html</trackback:ping><description><![CDATA[<div>http://alvinqq.iteye.com/blog/647649</div><img src ="http://www.blogjava.net/wansong/aggbug/364521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-11-22 13:37 <a href="http://www.blogjava.net/wansong/articles/364521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jaxb xsd</title><link>http://www.blogjava.net/wansong/articles/355144.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Wed, 27 Jul 2011 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/355144.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/355144.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/355144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/355144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/355144.html</trackback:ping><description><![CDATA[<a href="http://webservices.ctocio.com.cn/tips/363/6163863.shtml">http://webservices.ctocio.com.cn/tips/363/6163863.shtml</a><img src ="http://www.blogjava.net/wansong/aggbug/355144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-07-27 15:21 <a href="http://www.blogjava.net/wansong/articles/355144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分布式系统: REST, WebService, Corba</title><link>http://www.blogjava.net/wansong/articles/346936.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Thu, 24 Mar 2011 04:29:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/346936.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/346936.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/346936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/346936.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/346936.html</trackback:ping><description><![CDATA[http://www.javaeye.com/topic/82227
<img src ="http://www.blogjava.net/wansong/aggbug/346936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-03-24 12:29 <a href="http://www.blogjava.net/wansong/articles/346936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Restful: Jersey And Linux:Curl</title><link>http://www.blogjava.net/wansong/articles/346107.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Sat, 12 Mar 2011 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/346107.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/346107.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/346107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/346107.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/346107.html</trackback:ping><description><![CDATA[<a href="http://www.ibm.com/developerworks/web/library/wa-aj-tomcat/index.html">http://www.ibm.com/developerworks/web/library/wa-aj-tomcat/index.html</a><br />
<br />
Curl is a popular command-line tool that can send requests to a server using protocols like HTTP and HTTPS. It is a good tool to communicate with RESTful Web services because it can send content by any HTTP method. Curl is already distributed with Linux&#174; and Mac, and there is a utility that you can install for the Windows&#174; platform (see <a href="#resources">Resources</a>). <br />
<br />
http://www.infoq.com/cn/articles/springmvc_jsx-rs<br />
(@RequestParam <br />
(@RequestBody<br />
(@PathParam("username") <br />
(@QueryParam("username") 
<img src ="http://www.blogjava.net/wansong/aggbug/346107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-03-12 10:42 <a href="http://www.blogjava.net/wansong/articles/346107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过 CXF 使用 WS-Security </title><link>http://www.blogjava.net/wansong/articles/343006.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Fri, 14 Jan 2011 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/343006.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/343006.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/343006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/343006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/343006.html</trackback:ping><description><![CDATA[http://www.oschina.net/bbs/thread/8126
<img src ="http://www.blogjava.net/wansong/aggbug/343006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-01-14 22:08 <a href="http://www.blogjava.net/wansong/articles/343006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Webservice - XML-RPC</title><link>http://www.blogjava.net/wansong/articles/342337.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Wed, 05 Jan 2011 03:23:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/342337.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/342337.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/342337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/342337.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/342337.html</trackback:ping><description><![CDATA[http://baike.baidu.com/view/643379.htm<br />
<br />
<br />
XML-RPC的全称是XML Remote Procedure Call，即XML远程方法调用。
<div class="spctrl"></div>
　　它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。
<div class="spctrl"></div>
　　这种远程过程调用使用http作为传输协议，XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单，但同时能够传送、处理、返回复杂的数据结构。
<div class="spctrl"></div>
　　XML-RPC是工作在Internet上的远程过程调用协议。一个XML-RPC消息就是一个请求体为xml的http-post请求，被调用的方法在服务器端执行并将执行结果以xml格式编码后返回。
<div class="spctrl"></div>
　　<strong>Request example</strong>
<div class="spctrl"></div>
　　Here's an example of an XML-RPC request:
<div class="spctrl"></div>
　　POST /RPC2 HTTP/1.0User-Agent: Frontier/5.1.2 (WinNT)Host: betty.userland.comContent-Type: text/xmlContent-length: 181
<div class="spctrl"></div>
　　&lt;?xml version="1.0"?&gt;
<div class="spctrl"></div>
　　&lt;methodCall&gt;
<div class="spctrl"></div>
　　&lt;methodName&gt;examples.getStateName&lt;/methodName&gt;
<div class="spctrl"></div>
　　&lt;params&gt;
<div class="spctrl"></div>
　　&lt;param&gt;
<div class="spctrl"></div>
　　&lt;value&gt;&lt;i4&gt;41&lt;/i4&gt;&lt;/value&gt;
<div class="spctrl"></div>
　　&lt;/param&gt;
<div class="spctrl"></div>
　　&lt;/params&gt;
<div class="spctrl"></div>
　　&lt;/methodCall&gt;
<div class="spctrl"></div>
　　<strong>Response example</strong>
<div class="spctrl"></div>
　　Here's an example of a response to an XML-RPC request:
<div class="spctrl"></div>
　　HTTP/1.1 200 OKConnection: closeContent-Length: 158Content-Type: text/xmlDate: Fri, 17 Jul 1998 19:55:08 GMTServer: UserLand Frontier/5.1.2-WinNT
<div class="spctrl"></div>
　　&lt;?xml version="1.0"?&gt;
<div class="spctrl"></div>
　　&lt;methodResponse&gt;
<div class="spctrl"></div>
　　&lt;params&gt;
<div class="spctrl"></div>
　　&lt;param&gt;
<div class="spctrl"></div>
　　&lt;value&gt;&lt;string&gt;South Dakota&lt;/string&gt;&lt;/value&gt;
<div class="spctrl"></div>
　　&lt;/param&gt;
<div class="spctrl"></div>
　　&lt;/params&gt;
<div class="spctrl"></div>
　　&lt;/methodResponse&gt;
<div class="spctrl"></div>
　　二 XML-RPC入门程序
<div class="spctrl"></div>
　　以下的入门程序包括一个管理器（HelloHandler）、一个服务器（HelloServer）、一个客户程序（HelloClient）。
<div class="spctrl"></div>
　　首先要做的是创建用于远程过程调用的类和方法，人们常常称之为管理器。Xml-rpc管理器是一个方法和方法集，它接受xml-rpc请求，并对请求的内容进行解码，再向一个类和方法发出请求。
<div class="spctrl"></div>
　　<strong>//</strong><strong>管理器类</strong>
<div class="spctrl"></div>
　　<strong>package</strong> xmlRpc;
<div class="spctrl"></div>
　　/**
<div class="spctrl"></div>
　　* <strong>@author</strong> trier
<div class="spctrl"></div>
　　*
<div class="spctrl"></div>
　　* &lt;b&gt;&lt;code&gt;HelloHandler&lt;/code&gt;&lt;/b&gt; is a simple handler than can
<div class="spctrl"></div>
　　* be registered with an XML-RPC server
<div class="spctrl"></div>
　　*/
<div class="spctrl"></div>
　　<strong>public</strong> <strong>class</strong> HelloHandler {
<div class="spctrl"></div>
　　<strong>public</strong> String sayHello(String name){
<div class="spctrl"></div>
　　<strong>return</strong> "Hello " + name;
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　服务器程序将创建的管理器注册到服务器上，并为服务器指明应用程序其他特定的参数。
<div class="spctrl"></div>
　　//服务器类
<div class="spctrl"></div>
　　<strong>package</strong> xmlRpc;
<div class="spctrl"></div>
　　/**
<div class="spctrl"></div>
　　*
<div class="spctrl"></div>
　　* &lt;b&gt;&lt;code&gt;HelloServer&lt;/code&gt;&lt;/b&gt; is a simple XML-RPC server
<div class="spctrl"></div>
　　* that will take the &lt;code&gt;HelloHandler&lt;/code&gt; class available
<div class="spctrl"></div>
　　* for XML-PRC calls.
<div class="spctrl"></div>
　　* &lt;o:p
<div class="spctrl"></div>
　　*/
<div class="spctrl"></div>
　　<strong>import</strong> org.apache.xmlrpc.WebServer;
<div class="spctrl"></div>
　　<strong>import</strong> org.apache.xmlrpc.XmlRpc;
<div class="spctrl"></div>
　　<strong>import</strong> java.io.IOException;
<div class="spctrl"></div>
　　<strong>public</strong> <strong>class</strong> HelloServer {
<div class="spctrl"></div>
　　<strong>public</strong> <strong>static</strong> <strong>void</strong> main(String[] args){
<div class="spctrl"></div>
　　<strong>if</strong>(args.length&lt;1){
<div class="spctrl"></div>
　　System.out.println("Usage: java HelloServer [port]");
<div class="spctrl"></div>
　　System.exit(-1);
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　<strong>try</strong>{
<div class="spctrl"></div>
　　XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");
<div class="spctrl"></div>
　　//start the server
<div class="spctrl"></div>
　　System.out.println("Starting XML-RPC Server......");
<div class="spctrl"></div>
　　WebServer server = <strong>new</strong> WebServer(Integer.parseInt(args[0]));
<div class="spctrl"></div>
　　//register our handler class
<div class="spctrl"></div>
　　server.addHandler("hello",<strong>new</strong> HelloHandler());
<div class="spctrl"></div>
　　System.out.println("Now accepting requests......");
<div class="spctrl"></div>
　　}<strong>catch</strong>(ClassNotFoundException e){
<div class="spctrl"></div>
　　System.out.println("Could not locate SAX Driver");
<div class="spctrl"></div>
　　}<strong>catch</strong>(IOException e){
<div class="spctrl"></div>
　　System.out.println("Could not start server: "+e.getMessage());
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　//客户程序
<div class="spctrl"></div>
　　<strong>package</strong> xmlRpc;
<div class="spctrl"></div>
　　/**
<div class="spctrl"></div>
　　*
<div class="spctrl"></div>
　　* &lt;b&gt;&lt;code&gt;HelloClient&lt;/code&gt;&lt;/b&gt; is a simple XML-RPC client
<div class="spctrl"></div>
　　* that makes an XML-RPC request to &lt;code&gt;HelloServer&lt;/code&gt;
<div class="spctrl"></div>
　　*/
<div class="spctrl"></div>
　　<strong>import</strong> java.io.IOException;
<div class="spctrl"></div>
　　<strong>import</strong> java.util.Vector;
<div class="spctrl"></div>
　　<strong>import</strong> org.apache.xmlrpc.XmlRpc;
<div class="spctrl"></div>
　　<strong>import</strong> org.apache.xmlrpc.XmlRpcClient;
<div class="spctrl"></div>
　　<strong>import</strong> java.net.MalformedURLException;
<div class="spctrl"></div>
　　<strong>import</strong> org.apache.xmlrpc.XmlRpcException;
<div class="spctrl"></div>
　　<strong>public</strong> <strong>class</strong> HelloClient {
<div class="spctrl"></div>
　　<strong>public</strong> <strong>static</strong> <strong>void</strong> main(String[] args){
<div class="spctrl"></div>
　　<strong>if</strong>(args.length&lt;1){
<div class="spctrl"></div>
　　System.out.println("Usage: java HelloClient [your name]");
<div class="spctrl"></div>
　　System.exit(-1);
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　<strong>try</strong>{
<div class="spctrl"></div>
　　//Use the Apache Xereces SAX Driver
<div class="spctrl"></div>
　　XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");
<div class="spctrl"></div>
　　//Specify the server
<div class="spctrl"></div>
　　XmlRpcClient client = <strong>new</strong> XmlRpcClient("http://localhost:8585");
<div class="spctrl"></div>
　　//create request
<div class="spctrl"></div>
　　Vector params = <strong>new</strong> Vector();
<div class="spctrl"></div>
　　params.addElement(args[0]);
<div class="spctrl"></div>
　　//make a request and print the result
<div class="spctrl"></div>
　　String result = (String)client.execute("hello.sayHello",params);
<div class="spctrl"></div>
　　System.out.println("Response from server: "+ result);
<div class="spctrl"></div>
　　}<strong>catch</strong>(ClassNotFoundException e){
<div class="spctrl"></div>
　　System.out.println("Could not locate SAX Driver");
<div class="spctrl"></div>
　　}<strong>catch</strong>(MalformedURLException e){
<div class="spctrl"></div>
　　System.out.println("Incorrect URL fro xml-rpc server foramt:"+e.getMessage());
<div class="spctrl"></div>
　　}<strong>catch</strong>(XmlRpcException e){
<div class="spctrl"></div>
　　System.out.println("XmlRpcException :"+e.getMessage());
<div class="spctrl"></div>
　　}<strong>catch</strong>(IOException e){
<div class="spctrl"></div>
　　System.out.println("IOException:"+e.getMessage());
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　}
<div class="spctrl"></div>
　　三 RPC和RMI的简单比较
<div class="spctrl"></div>
　　在RMI和RPC之间最主要的区别在于方法是如何别调用的。在RMI中，远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行，但是没有相匹配的签名被添加到这个远程接口上，那么这个新方法就不能被RMI客户方所调用。在RPC中，当一个请求到达RPC服务器时，这个请求就包含了一个参数集和一个文本值，通常形成&#8220;classname.methodname&#8221;的形式。这就向RPC服务器表明，被请求的方法在为&#8220;classname&#8221;的类中，名叫&#8220;methodname&#8221;。然后RPC服务器就去搜索与之相匹配的类和方法，并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功，这个方法就被调用了，其结果被编码后返回客户方。 
<img src ="http://www.blogjava.net/wansong/aggbug/342337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2011-01-05 11:23 <a href="http://www.blogjava.net/wansong/articles/342337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Axis2根据wsdl文件生成本地Java代码</title><link>http://www.blogjava.net/wansong/articles/341755.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Tue, 28 Dec 2010 04:18:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/341755.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/341755.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/341755.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/341755.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/341755.html</trackback:ping><description><![CDATA[http://up2pu.javaeye.com/blog/847395<br />
<br />
http://axis.apache.org/axis2/java/core/docs/userguide.html#underhood
<img src ="http://www.blogjava.net/wansong/aggbug/341755.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2010-12-28 12:18 <a href="http://www.blogjava.net/wansong/articles/341755.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 调用webservice--使用axis2   RPCServiceClient</title><link>http://www.blogjava.net/wansong/articles/341205.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Tue, 21 Dec 2010 00:23:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/341205.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/341205.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/341205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/341205.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/341205.html</trackback:ping><description><![CDATA[<p>http://www.ymquba.com/article.asp?id=352<br />
<br />
<br />
private void test_findAllUsers(){<br />
&nbsp;&nbsp;System.out.println("------------------test_findAllUsers-------------------------------------");<br />
&nbsp;&nbsp;RPCServiceClient serviceClient = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp; serviceClient = new RPCServiceClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options options = serviceClient.getOptions();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EndpointReference targetEPR = new EndpointReference(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://localhost:8080/Axis2141Demo/services/UserService");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options.setTo(targetEPR);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QName qname = new QName("http://axis2141demo.sample/xsd", "findAllUsers");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] parameters = new Object[]{};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class[] returnTypes = new Class[]{User.class};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] objects = serviceClient.invokeBlocking(qname, parameters, returnTypes);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(" objects size--&gt;:" + objects.length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0; i &lt; objects.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; if ((objects[i] != null) &amp;&amp; (objects[i] instanceof User)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; User user = (User)objects[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; System.out.println("User Object Not null : " + user.getUserName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;} catch (AxisFault e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * "List&lt;User&gt; findAllUsers()"<br />
&nbsp; *<br />
&nbsp; */<br />
&nbsp;private void test_findAllUsersCascadeOrder(){<br />
&nbsp;&nbsp;System.out.println("------------------test_findAllUsersCascadeOrder-------------------------------------");<br />
&nbsp;&nbsp;RPCServiceClient serviceClient = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp; serviceClient = new RPCServiceClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options options = serviceClient.getOptions();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EndpointReference targetEPR = new EndpointReference(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://localhost:8080/Axis2141Demo/services/UserService");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options.setTo(targetEPR);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QName qname = new QName("http://axis2141demo.sample/xsd", "findAllUsersCascadeOrder");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] parameters = new Object[]{};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class[] returnTypes = new Class[]{User.class};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] objects = serviceClient.invokeBlocking(qname, parameters, returnTypes);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(" objects size--&gt;:" + objects.length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0; i &lt; objects.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; if ((objects[i] != null) &amp;&amp; (objects[i] instanceof User)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; User user = (User)objects[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; System.out.println(" UserName : " + user.getUserName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; List&lt;Order&gt; orders = user.getOrders();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; System.out.println("OrdersSize : " + orders.size());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; for (Order order : orders) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(" OrderID : " + order.getOrderId() + " --&gt; : " + order.getOrderNo());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;} catch (AxisFault e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;/**<br />
&nbsp; * "User findUserByUserId(Integer userId)"<br />
&nbsp; *<br />
&nbsp; */<br />
&nbsp;private void test_findUserByUserId(){<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;System.out.println("-------------test_findUserByUserId-----------------------------------------");<br />
&nbsp;&nbsp;RPCServiceClient serviceClient = null;<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp; serviceClient = new RPCServiceClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options options = serviceClient.getOptions();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EndpointReference targetEPR = new EndpointReference(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://localhost:8080/Axis2141Demo/services/UserService");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options.setTo(targetEPR);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; QName qname = new QName("http://axis2141demo.sample/xsd", "findUserByUserId");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] parameters = new Object[] {new Integer(10)};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class[] returnTypes = new Class[]{User.class};<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] objects = serviceClient.invokeBlocking(qname, parameters, returnTypes);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("objects size--&gt;:" + objects.length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0; i &lt; objects.length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; if ((objects[i] != null) &amp;&amp; (objects[i] instanceof User)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; User user = (User)objects[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; System.out.println(" User Object Not null : " + user.getUserName());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;} catch (AxisFault e) {<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;}</p>
<img src ="http://www.blogjava.net/wansong/aggbug/341205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2010-12-21 08:23 <a href="http://www.blogjava.net/wansong/articles/341205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java调用.NET webservice方法的几种方式</title><link>http://www.blogjava.net/wansong/articles/340972.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Fri, 17 Dec 2010 05:05:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/340972.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/340972.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/340972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/340972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/340972.html</trackback:ping><description><![CDATA[http://liyuandong.javaeye.com/blog/567836<br />
<br />
JAVA用这种方式调用webservice,需要注意的地方： <br />
1. 服务器未能识别 HTTP 标头 SOAPAction 的值： <br />
症状一： <br />
Web Service + ASP.NET 应用程序部署到服务器默认目录中，在IE中用http://&lt;服务器地址&gt;/&lt;程序目录名&gt;/&lt;默认启动页面名&gt;发生&#8220;服务器未能识别 HTTP 标头 SOAPAction 的值&#8221;错误。 <br />
症状二： <br />
在Java平台上调用.NET Web Service的服务时，出现"服务器未能识别 HTTP 标头 SOAPAction 的值"。 <br />
症状三： <br />
在Java平台下调用.NET WEB Service，出现数据时有时无。 <br />
<br />
解决对策： <br />
<br />
给.NET的WebService类（即.asmx文件下的类）添加属性[SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)] <br />
小知识： <br />
什么是SoapAction？它在WSDL中有何作用？ <br />
SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地，其值是个URI地址。SOAP发送并不限制格式、URI特征或其必须可解析，那么在这种情况下，发送一个HTTP SOAP请求时，其HTTP客户端必须使用/指明SOAPAction HTTP request header。 <br />
<br />
SOAPAction header的内容可以被用在服务端，诸如：防火墙适当的过滤基于HTTP的SOAP请求消息等场景。SOAPAction header的值为空串("")表示SOAP消息的目的地由HTTP请求的URI标识；无值则表示没有指定这条消息的目的地。 <br />
<br />
本人补充： <br />
在.NET环境调用.NET WebService出现 &#8220;SOAPAction 值在 XML Web services 的所有方法中不唯一的错误&#8221;，也可以通过此法解决。 <br />
<br />
<span style="color: red">2. 为了Java能够调用WebService的方法，所以。NETP写的WebServiced的每个方法都要声明为Rpc方法，即添加"[SoapRpcMethod.....]".</span> <br />
例如：[WebMethod] <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [SoapRpcMethod(Use=SoapBindingUse.Literal,Action= http://tempuri.org/HelloWorld", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")] <br />
<br />
3. 对返回值、参数的处理上： <br />
应尽量将webservice方法的返回值、参数都写成字符串（String）不要使用复杂对象类型,这样便于在网络上传输。避免了复杂对象类型的不易转换问题。。。对于返回类型是字符串数组型的，可以设置返回类型为org.apache.axis.encoding.XMLType.SOAP_VECTOR或java.lang.String[].class. <br />
<br />
<img src ="http://www.blogjava.net/wansong/aggbug/340972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2010-12-17 13:05 <a href="http://www.blogjava.net/wansong/articles/340972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用Mule ESB与Groovy编排RESTful服务</title><link>http://www.blogjava.net/wansong/articles/337597.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Tue, 09 Nov 2010 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/337597.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/337597.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/337597.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/337597.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/337597.html</trackback:ping><description><![CDATA[http://doc.chinaunix.net/java/200911/240192.shtml
<img src ="http://www.blogjava.net/wansong/aggbug/337597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2010-11-09 10:21 <a href="http://www.blogjava.net/wansong/articles/337597.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSON Webservice </title><link>http://www.blogjava.net/wansong/articles/335147.html</link><dc:creator>w@ns0ng</dc:creator><author>w@ns0ng</author><pubDate>Thu, 14 Oct 2010 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/wansong/articles/335147.html</guid><wfw:comment>http://www.blogjava.net/wansong/comments/335147.html</wfw:comment><comments>http://www.blogjava.net/wansong/articles/335147.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wansong/comments/commentRss/335147.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wansong/services/trackbacks/335147.html</trackback:ping><description><![CDATA[http://www.oschina.net/p/json-webservice/similar_projects
 <img src ="http://www.blogjava.net/wansong/aggbug/335147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wansong/" target="_blank">w@ns0ng</a> 2010-10-14 14:59 <a href="http://www.blogjava.net/wansong/articles/335147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>