仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1991|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA编程:XML-RPC 之 Apache XML-RPC 实例

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:49:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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程序员是操作员,呵呵。
简单生活 该用户已被删除
沙发
发表于 2015-1-20 08:48:20 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
柔情似水 该用户已被删除
板凳
发表于 2015-1-20 17:44:43 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
不帅 该用户已被删除
地板
发表于 2015-1-29 13:40:24 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
爱飞 该用户已被删除
5#
发表于 2015-2-3 12:19:53 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
老尸 该用户已被删除
6#
发表于 2015-2-6 10:55:37 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
乐观 该用户已被删除
7#
发表于 2015-2-6 15:18:47 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
8#
发表于 2015-2-16 20:49:33 | 只看该作者
是一种使用者不需花费很多时间学习的语言
莫相离 该用户已被删除
9#
发表于 2015-2-20 14:03:23 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
蒙在股里 该用户已被删除
10#
发表于 2015-3-4 17:23:58 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
分手快乐 该用户已被删除
11#
发表于 2015-3-11 18:55:59 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
活着的死人 该用户已被删除
12#
发表于 2015-3-19 08:05:01 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
透明 该用户已被删除
13#
发表于 2015-3-26 08:40:03 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
再现理想 该用户已被删除
14#
发表于 2015-3-28 20:57:05 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
飘飘悠悠 该用户已被删除
15#
发表于 2015-4-11 22:00:01 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
小妖女 该用户已被删除
16#
发表于 2015-4-16 18:09:26 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
深爱那片海 该用户已被删除
17#
发表于 2015-6-15 17:19:24 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
海妖 该用户已被删除
18#
发表于 2015-6-19 22:19:41 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
若相依 该用户已被删除
19#
发表于 2015-6-28 06:40:10 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
admin 该用户已被删除
20#
发表于 2015-6-29 20:43:43 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-1 20:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表