所谓Web Service是一个平台独立的,低耦合的。自包括的、可编程的Web应用程序。有了Web Service异构系统之间就能够通过XML或JSON来交换数据,这样就能够用于开发分布式的互操作的应用程序。
Web Service使得执行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件就可相互交换数据或集成。不管它们各自所使用的语言、平台或内部协议是什么,都能够相互交换数据。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。
REST(REpresentational State Transfer)是Roy Fielding博士于2000年在他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,能够减少开发的复杂性,提高系统的可伸缩性。
近年来,越来越多的Web Service開始採用REST风格设计和实现。
比如,亚马逊提供接近REST风格的Web Service进行图书查找;雅虎提供的Web Service也是REST风格的。
假设要对REST有更深入的了解和更深刻的认识,推荐大家阅读InfoQ上面的一篇文章《理解本真的REST架构风格》。相信非常多自以为懂REST的人看完这篇文章之后才知道什么是真正的REST。在IBM的开发人员社区中有一篇非常好的文章,名为《使用Spring 3来创建RESTful Web Services》。解说怎样用Spring Web和Spring MVC来创建REST风格的Web Service。因为这篇文章已经讲得非常好了。这里我就不再赘述当中的内容。
这里要讲的是基于Apache CXF来创建RESTful Web Service。能够在Apache的站点下载到CXF的发行版本号。Apache的官网是这样介绍CXF的:
Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
下载完毕后解压并找到lib文件夹,将当中的jar文件加入你的Java项目中,接下来就能够開始编写你的Web Service程序了。话不多说。直接上代码。
最后来启动Web Service的server并进行測试。
在浏览器中分别输入下面两个URI查看结果:
http://localhost:9999/service/stu/1002