|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.apache|xml
王恩建http://www.sentom.netXML-RPC是事情在Internet上的远程历程挪用协定。普通点讲,就是利用HTTP协定交互,交互的载体是XML文件。XML-RPC详细的标准说明请参考这里。
图片来自XML-RPC官方网站
XML-RPC标准界说了六种数据范例,下表是这六种数据范例与Java的数据范例对应表。
XML-RPCJava<i4>或<int>int<boolean>boolean<string>java.lang.String<double>double<dateTime.iso8601>java.util.Date<struct>java.util.Hashtable<array>java.util.Vector<base64>byte[]
XML-RPC标准的各类平台都有详细完成,XML-RPC标准的Java完成都有好几种,这里我们选择了ApacheXML-RPC。
XML-RPC服务端完成先界说一个复杂营业对象MyHandler,远程客户端将挪用该对象的办法,详细代码以下:
packagenet.sentom.xmlrpc;publicclassMyHandler{publicStringsayHello(Stringstr){return"Hello,"+str;}}
然后界说一个Servlet名叫MyXmlRpcServer,远程客户端经由过程HTTP-POST会见该Servlet。
packagenet.sentom.xmlrpc;importjava.io.IOException;importjava.io.OutputStream;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.xmlrpc.XmlRpcServer;publicclassMyXmlRpcServerextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{XmlRpcServerxmlrpc=newXmlRpcServer();xmlrpc.addHandler("myHandler",newMyHandler());byte[]result=xmlrpc.execute(request.getInputStream());response.setContentType("text/xml");response.setContentLength(result.length);OutputStreamout=response.getOutputStream();out.write(result);out.flush();}}
必要出格申明是:
xmlrpc.addHandler("myHandler",newMyHandler());
为了便于了解,这里能够当作一般的:
MyHandlermyHandler=newMyHandler();
最初在web.xml文件中到场以下几行:
<servlet><servlet-name>MyXmlRpcServer</servlet-name><servlet-class>net.sentom.xmlrpc.MyXmlRpcServer</servlet-class></servlet><servlet-mapping><servlet-name>MyXmlRpcServer</servlet-name><url-pattern>/MyXmlRpcServer</url-pattern></servlet-mapping>
XML-RPC客户端完成客户端绝对复杂一些,先来一个Java客户端完成MyXmlRpcClient:
packagenet.sentom.xmlrpc;importjava.io.IOException;importjava.net.MalformedURLException;importjava.util.Vector;importorg.apache.xmlrpc.XmlRpcClient;importorg.apache.xmlrpc.XmlRpcException;publicclassMyXmlRpcClient{publicstaticvoidmain(String[]args){try{XmlRpcClientxmlrpc=newXmlRpcClient("http://localhost:8080/XMLRPC/MyXmlRpcServer");Vectorparams=newVector();params.addElement("Tom");Stringresult=(String)xmlrpc.execute("myHandler.sayHello",params);System.out.println(result);}catch(MalformedURLExceptione){System.out.println(e.toString());}catch(XmlRpcExceptione){System.out.println(e.toString());}catch(IOExceptione){e.printStackTrace();}}
http://localhost:8080/XMLRPC/MyXmlRpcServer为MyXmlRpcServer的会见URL。
Stringresult=(String)xmlrpc.execute("myHandler.sayHello",params);
再来一个Python客户端完成
importxmlrpcliburl=http://localhost:8080/XMLRPC/MyXmlRpcServer;server=xmlrpclib.Server(url);printserver.myHandler.sayHello(Tom);
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。 |
|