欢迎来到天天文库
浏览记录
ID:17664064
大小:84.00 KB
页数:13页
时间:2018-09-04
《用 java 技术创建 restful web 服务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微企联盟http://www.xqylm.com兴创富之路,企发展之光www.xqylm.com用Java技术创建RESTfulWeb服务简介:JAX-RS(JSR-311)是一种Java™API,可使JavaRestful服务的开发变得迅速而轻松。这个API提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位置、资源的表示和可移植的(pluggable)数据绑定架构。在本文中,学习如何使用JAX-RS在JavaEE环境内实现RESTful服务架构的潜能简介JAX-RS(JSR-311)是为JavaEE环境下的RESTful服务能力提供的一种规范。它能提供对传统的基于
2、SOAP的Web服务的一种可行替代。在本文中,了解JAX-RS的主要组件。本文用一个例子展示了一个企业如何使用JAX-RS内的功能以一种Restful的方式公开员工的联系信息。背景多年来,开发人员使用各种工具在其Java应用程序内创建RESTful服务。由于REST架构的简单性,主要需求—接收HTTP消息和头部的能力—可以由一个简单的JavaWeb容器实现。Javaservlets常被用来开发RESTful应用程序。如何使用servlet并没有固定的模式。通常,servlet会接受请求并自己解析这个HTTP请求URI,以将此请求与一个已知资源相匹配。对于REST服务开发,这个简单
3、的servlet模型以更为正式的API得到扩展。但是,因为这些API是在servlet模型之上开发的,所以这些API中没有一个是作为正式的标准开发的。随着REST越来越多地被采用为一种架构,JavaCommunityProcess(JCP)计划在未来的JavaEnterpriseEdition6发布版中包括对REST的正式支持。JSR-311也已创建好,并已有了JAX-RS1.0规范,提供了一种新的基于注释的方式来开发RESTful服务。与servlet模型相比,JAX-RS注释让您能集中于您的资源和数据对象。并且,您不必再开发通讯层(通过servlet)。Java资源JAX-R
4、S建立了一种特殊的语言来描述资源,正如由其编程模型所表示的。有五种主要条目:根资源、子资源、资源方法、子资源方法以及子资源定位器。根资源根资源是由@Path注释的Java类。@Path注释提供了一个value属性,用来表明此资源所在的路径。value属性可以是文本字符、变量或变量外加一个定制的正则表达式。清单1给出了一个例子。清单1.JAX-RS根资源packagecom.ibm.jaxrs.sample.organization;importjavax.ws.rs.Path;@Path(value="/contacts")publicclassContactsResource{
5、...}重庆鹭佳财务有限公司http://www.ljcw168.com重庆SEOhttp://www.cqseo.org重庆网站建设http://www.zl5.info微企联盟http://www.xqylm.com兴创富之路,企发展之光www.xqylm.com子资源子资源是作为subresourcelocator调用的结果返回的Java类。它们类似于根资源,只不过它们不是由@Path注释的,因它们的路径是由子资源定位器给出的。子资源通常包含由HTTP请求方法指示符(designator)注释的方法以便服务此请求。如果它们不包含如此注释的方法,那么它们将会通过指派给合适的子
6、资源定位器来进一步解析此资源处理请求。清单2.JAX-RS子资源packagecom.ibm.jaxrs.sample.organization;importjavax.ws.rs.GET;publicclassDepartment{@GETpublicStringgetDepartmentName(){...}}如上所示的清单2展示了由ContactsResource.getContactDepartment方法返回的子资源。在这个例子中,如果一个HTTPGET请求被发送给/contact/{contactName}/department路径,那么Department子资源内的
7、getDepartmentName资源方法就会处理此请求。资源方法资源方法是根资源或子资源内绑定到HTTP方法的Java方法。绑定是通过诸如@GET这样的注释完成的。清单3.JAX-RS资源方法packagecom.ibm.jaxrs.sample.organization;importjava.util.List;importjavax.ws.rs.GET;importjavax.ws.rs.Path;@Path(value="/contacts")publicclassCon
此文档下载收益归作者所有