已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Jersey框架建jax-rs规范的webservice概述JAX-RS是一套用java实现REST服务的规范,提供了一些标注将一个资源类,一个POJOJava类,封装为Web资源。标注包括:Path,标注资源类或方法的相对路径GET,PUT,POST,DELETE,标注方法是用的HTTP请求的类型Produces,标注返回的MIME媒体类型Consumes,标注可接受请求的MIME媒体类型PathParam,QueryParam,HeaderParam,CookieParam,MatrixParam,FormParam,分别标注方法的参数来自于HTTP请求的不同位置,例如PathParam来自于URL的路径,QueryParam来自于URL的查询参数,HeaderParam来自于HTTP请求的头信息,CookieParam来自于HTTP请求的Cookie。目前JAX-RS的实现包括:Apache CXF,开源的Web服务框架。Jersey, 由Sun提供的JAX-RS的参考实现。RESTEasy,JBoss的实现。Restlet,由Jerome Louvel和Dave Pawson开发,是最早的REST框架,先于JAX-RS出现。Apache Wink,一个Apache软件基金会孵化器中的项目,其服务模块实现JAX-RS规范Myeclipse2013+tomcat7+jdk1.7 软件自带的jersey框架新建项目File=New=Web Service Pject name: 项目名称,eg:rest,jaxRS. ,选择REST(JAX-RS) 下一步。勾选core,jaxb,client,json然后下一步。其中,jaxb(Java Architecture for XML Binding)可以将java class序列号成xml新建项目中,有一项配置servlet,运行容器的选项JAX-RS REST ServletJAX-RS REST Servletcom.sun.jersey.spi.container.servlet.ServletContainer/jersey运行容易,默认1JAX-RS REST Servlet/services/*/路径,默认jaxrs,可根据自己情况自己填需要的jar有jaxb,jax-rs的包,myeclipse已经提供完整,不需要额外的包,至此项目新建完毕编写运行的基本类与方法配置点击使用eclipse创建Rest 图标创建webservice,选择restblog工程,Framework选择REST(JAX-RS)通过以上的操作可以配置方法的路径,参数类型,反馈类型,get或者post方法(另外,在Java文件上右键菜单=MyEclipse=Add REST Method,跟上文一样配置服务方法)也可以直接手动写资源注入,具体含义再次列举Path,标注资源类或方法的相对路径GET,PUT,POST,DELETE,标注方法是用的HTTP请求的类型Produces,标注返回的MIME媒体类型Consumes,标注可接受请求的MIME媒体类型PathParam,QueryParam,HeaderParam,CookieParam,MatrixParam,FormParam,分别标注方法的参数来自于HTTP请求的不同位置,例如PathParam来自于URL的路径,/category/id中的id就是PathParam QueryParam来自于URL的查询参数,HeaderParam来自于HTTP请求的头信息,CookieParam来自于HTTP请求的Cookie。详解下资源注入:举例:一般的资源注入,直接Path(/path1*/id) GET Produces(application/xml)Public .(PathParam(“id”) String id)Path是访问路径,在最初的类开头也可以有path “/”或者”jaxRs”都可以Get就不多讲了Produces 反馈的数据类型至于,请求参数数据类型可以不用设置PathParam,QueryParam:上文举例的Path(/path1*/id)路径为例,get方式的访问方式最常见的是*/path1/suan?end=2&start=1 ,其中suan是参数,start,end一样是参数,其中suan是PathParam,start,end是QueryParam此时方法声明Path(/path1*/id) GET Produces(application/xml)functionName(PathParam(“id”) int id, QueryParam(“start”) String start, QueryParam String end)即可列举一个最简单的访问方法QueryParam(name)DefaultValue(默认组织) String name上文关于参数的默认值,也没什么好说的,具体看我整理的网页测试,tomcat编译后,除了浏览器路径访问测试,myeclipse也提供了测试右键工程根目录restblog选择MyEclipse=Test with RESTful WebServices Explorer 将会打开测试窗口。关于rest的声明周期:1. 默认情况下 rest服务的生命周期 = request的生命周期,请求过后立即消毁,所以默认情况下rest服务类是线程安全的2. 如果你需要使用单例来发布,jax-rs提供了注解Singletonjava view plaincopySingleton public class UserContext 加入Singleton注解以后,再重启运行i的值就会不停累加所以这时rest服务的生命周期 = 应用服务器生命周期3. 另外还有一种生命周期就是PerSession,每一个session请求,就产生一个rest资源实例,直到这个session消毁,这个rest资源才会消失。java view plaincopyPerSession public class UserContext 所以,rest有三种生命周期,三种周期分别等于request,session,applcation的生命周期jaxb好,还没结束,还有重头戏,就是关于响应的json或者xml格式数据我先给一份完整的xml格式的文档:c1abcb68-372b-4df8-a074-e072d54d5672 2349 1 先讲jaxb关于xml的注解:(举例都已上文为例)XmlRootElement 将一个Java类映射为一段XML的根节点参数:name 定义这个根节点的名称 namespace 定义这个根节点命名空间Eg:XmlRootElement(name = ceb:CEB501Message,namespace=)XmlAccessorType 定义映射这个类中的何种类型需要映射到XML,默认public的field或property的属性放置到xml中XmlElement 指定一个字段或get/set方法映射到XML的节点参数: defaultValue 指定节点默认值 name 指定节点名称 namespace 指定节点命名空间 required 是否必须(默认为false) nillable 该字段是否包含 nillable=true 属性(默认为false) type 定义该字段或属性的关联类型Eg:XmlElement(name=”ceb:LogisticsHead”)XmlAttribute 指定一个字段或get/set方法映射到XML的属性。参数: name 指定属性名称 namespace 指定属性命名空间 required 是否必须(默认为false)XmlTransient 定义某一字段或属性不需要被映射为XML。XmlType 定义映射的一些相关规则参数: propOrder 指定映射XML时的节点顺序 factoryClass 指定UnMarshal时生成映射类实例所需的工厂类,默认为这个类本身 factoryMethod 指定工厂类的工厂方法 name 定义XML Schema中type的名称 namespace 指定Schema中的命名空间Eg: XmlType(propOrder = id, name, age,book)XmlElementWrapper 为数组元素或集合元素定义一个父节点。如,类中有一元素为List items,若不加此注解,该元素将被映射为 . .这种形式,此注解可将这个元素进行包装,如: XmlElementWrapper(name=items) XmlElement(name=item) public List items;将会生成这样的XML样式: . .Jaxb生成xml和json当在class类中注入以上内容,即可在输出中设定输出类型Eg:经测试发现:Jaxb只适用于简单的xml格式或者
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年专利代理师考试(专利法律知识)全真冲刺试题及答案(辽宁省)
- 20万千瓦风电工程规划设计方案
- 难点解析-人教版八年级物理上册第4章光现象综合练习试题(含详细解析)
- 重难点解析人教版八年级物理上册第4章光现象专题训练试题(含详解)
- 考点解析-人教版八年级上册物理《物态变化》专项测试试题(含答案解析版)
- 2025年企业法律顾问资格考试(综合法律知识)综合练习题及答案
- 经济开发区排水管网提升改造工程规划设计方案
- 2025年企业法律顾问资格考试(民商与经济法律知识)考前冲刺试题及答案二
- (2025)职业生涯规划考试试题及答案
- 2025版胰腺炎及并发症护理培训大纲
- 儿童急性发热的处理及合理用药
- 颅内动脉瘤血管畸形影像诊断
- 数字化解决方案设计师职业技能竞赛参考试题库(含答案)
- 人教版(2024新版)七年级上册英语期末素养综合测试卷 3套(含答案)
- 监理管理交底
- 传染病监测预警与应急指挥信息平台建设需求
- 14斜面课件科学六年级上册青岛版
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 学校实验室危险化学品安全工作检查记录表
- 心理健康教育课件.他人眼中的我
- 鼻饲法定义目的将胃管经一侧鼻腔插入胃内从管内灌注流质饮
评论
0/150
提交评论