问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

resteasy 搭建webservice 返回List类型数据如何实现?

发布网友 发布时间:2022-04-11 22:33

我来回答

1个回答

热心网友 时间:2022-04-12 00:02

网上有很多rest文章,看到最后都云里雾里的,不知道具体的实现,刚刚找到一篇比较实用的文章,转过来:http://lv78.blog.163.com/blog/static/18970204820115216420298/
REST简介
REST(Representational State Transfer)中文解释为“表述性状态转移”,是2000年由Roy Fielding 在他的博士论文 《 Architectural Styles and the Design of Network-based Software Architectures》中提出的架构风格。REST是基于HTTP,URI,XML,JSON等协议或者标准,它促使了http协议的更加正确使用。相对于SOAP和WSDL提供的web service方案,REST显得更加简单。

基于REST的web service应该遵守一些基本的原则:
1:资源的识别:系统中的每一个对象或是资源都可以通过一个唯一的 URI 来进行寻址,URI 的结构应该简单、可预测且易于理解,比如定义目录结构式的 URI。

2:协议: 以遵循 HTTP/1.1 RFC2616 所定义的协议的方式显式地使用 HTTP 方法,建立创建、检索、更新和删除(CRUD:Create, Retrieve, Update and Delete)操作与 HTTP 方法之间的一对一映射:
POST: 在服务器上创建资源;
GET: 检索某个资源;
PUT: 更改资源状态或对其进行更新;
DELETE: 删除某个资源。

3:自描述的消息:URI 所访问的每个资源都可以使用不同的形式加以表示(比如 XML 或者 JSON),具体的表现形式取决于访问资源的客户端,客户端与服务提供者使用一种内容协商的机制(请求头与 MIME 类型)来选择合适的数据格式,最小化彼此之间的数据耦合。

Java Rest Framework
1:Restlet: 出现的较早,在JAX-RS之前就有了,支持的框架较多,但是使用起来不够简单。
2:CXF: 是Celtix 和 XFire合并后的项目,支持SOAP,WSDL,JSR-WS,REST,配置较为复杂,侵入性太强,单纯构建restful web service显得较重。
3:Resteasy: 是jboss下面一个对JAX-RS(JSR311)的一个实现,使用起来简单方便,支持spring,oauth等。
4:[url=https://jersey.dev.java.net/]Jersey[/url]: 是sun公司对JAX-RS(JSR311)的一个参考实现,不过现在在逐渐的摆脱参考实现的阴影,逐渐渗透到企业应用,和sun的glassfish和netbeans结合使用可以很方便的构建restful web service。

实现restful web service使用CXF和restlet都显得太重,使用Jersey总是觉得这个是官方的参考实现,看看Easyrest的文档还是较为全面,所以选择Easyrest来作为rest api的java框架。

注:JSR 311 或 JAX-RS(用于 RESTful Web Services 的 Java API)的提议开始于 2007 年,1.0 版本到 2008 年 10 月定稿。目前,JSR 311 版本 1.1 还处于草案阶段。该 JSR 的目的是提供一组 API 以简化 REST 样式的 Web 服务的开发。

RESTEasy的一些功能点
实现中遵守 JAX-RS 规范
需要 JDK 5 或者以上版本的应用服务器中运行
支持在应用服务器中作 junit 测试
使用annotations更简单的写客户端应用 (JAX-RS 只定义了服务器端的)
支持HTTP 1.1缓存语义包括缓存。
支持多种格式: XML, JSON, YAML, Fastinfoset, Multipart, XOP, Atom, etc.
支持JAXB 和XML, JSON, Jackson, Fastinfoset, and Atom 互转
支持GZIP ,JBoss Web, Tomcat 6, and Servlet 3.0,EJB, Seam, Guice, Spring, and Spring MVC integration

使用Resteasy构建 restful web service
把对图书馆的书籍的操作作为例子,讨论使用resteasy构建restful web service的方法。中间包括pom.xml的配置,web.xml的配置,相关上下文类的实现,核心类中到一些方法。
1:创建工程,配置pom.xml
mvn archetype:create -DgroupId=com.longtask.rest.easyrest -DartifactId=easyrest -DarchetypeArtifactId=maven-archetype-webapp
mvn eclipse:eclipse
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
牡丹叶子枯了怎么办 牡丹枯叶怎么回事 "他同情冤魂、惩办恶人,既有同情心又主持公道,既可爱又恐怖” 冯宝成传销诈骗邪教组织 冯保成团队,传销诈骗,家人深陷其中,求助。 南朝词臣北朝客,归来唯见秦淮碧。 池台竹树三亩馀至今人道江家宅的意思 池台竹树三亩馀至今人道江家宅是什... 高效、加分学习工具——小小答题错题本上线了 如何将三张合在一起的图片合并 砂锅红烧肉的做法 最正宗的做法_砂锅红烧肉怎么做 砂锅版红烧肉做法: restlet怎么把响应转为json geoserver创建datastore的传入参数有哪些 python有什么高性能的restful模块没 英语Restlet Client Sign怎么翻译? 急求解答~关于Restlet集成Spring的问题! 怎么获取restlet框架中请求的参数??? 求盗墓笔记全本jar下载,邮箱hamatp@163.com 跪求盗墓笔记全本1-9,谢谢啊,邮箱:hamawaizigou@163.com 请问谁知道东京大田区附近有没有学习日语的地方? 求盗墓笔记1-8全本TXT,邮箱:hamatp@163.com 魔法的学习 TBC裁缝3个分支找谁学啊? 魔力宝贝2里的财宝记录书那任务怎么做? 计算机操作系统的作用主要有哪几类? 如何在mac os平台上的opengl程序中获取屏幕大小 什么是“威客”? 操作系统完成的主要功能与什么有关 Oracle中函数和存储过程的区别总结版 VC中 如何利用ODBC在Access数据库里查询日期/时间类型的字段? 请问VC++中如何连接odbc数据源,具体步骤!谢谢! 如何实现支持REST的Java Business Services 如何配置cocos2dx在vs2010的环境 新手刚接触cocos2d-x,在网上下载的游戏的源码怎么加入到VS2010中运行?在VS中已经配置好了cocos2d-x。 VS2010创建cocos2dx项目的时候出现无法打开CCStdC.h和cocos2d.h文件。 您好 对于Cocos2dx网上下载的源码如何导入到vs2010这个问题您可以帮忙解答一下吗 小女感激感激 cocos2d-x环境搭建,vs2010,生成解决方案时出错,error MSB3073,具体如下,求指导 cocos2dx中hello.world项目创建成功,如何添加cocos2d-x模块道VS2010 vs2010创建Cocos2dx的工程 怎么没找到Resource文件夹 cocos2dx 用什么工具开发 Cocos2D-X:用VS2010的话应该安装哪个版本的cocos? cocos2d-x和cocos studio有什么区别 cocos2dx 为什么要将资源拷到debug.win32根目录下才有用 cocos2dx 能开发什么游戏 oracle 一个 数据块有多大 oracle一个数据块能否存放多个表的数据? oracle数据块通过什么表示这个块空闲 oracle数据块的大小影响效率吗? Oracle中如何删除某个用户下的所有数据呢 ... oracle怎样将多列转换成一行? oracle 多分组,行转列问题