- 浏览: 1222877 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (883)
- Spring (101)
- Swing (1)
- Mysql (21)
- Js (59)
- Jsp (2)
- Hibernate (19)
- Myeclipse (5)
- SqlServer 2000 (2)
- poi (15)
- Java (70)
- SSH (12)
- Html (47)
- Fusion Charts (1)
- C\C++ (2)
- 汇编 (36)
- Jquery (37)
- Struts2 (6)
- Ubuntu (16)
- powerDesinger (4)
- Jboss (3)
- JAX-RS (13)
- JAXB (5)
- JAX-WS (11)
- JMS (4)
- WebSocket (8)
- PHP (16)
- Flash (1)
- maven (3)
- Oracle (8)
- HttpClient (6)
- sqlserver (19)
- svn (5)
- Tomcat (3)
- Jdbc (3)
- EsayUi (11)
- 微信公众平台 (19)
- IIS (2)
- Freemarker (11)
- Comet (1)
- Spring MVC (85)
- JBoss Seam (3)
- 二维码 (9)
- Spring Security (4)
- Ehcache (3)
- Apache Shiro (7)
- jackson (16)
- JPA (8)
- jcaptcha (2)
- RSA (2)
- Ajax (6)
- 跟我学Shiro (0)
- Spring4 (19)
- 跟我学spring3 (0)
- css (32)
- excel (4)
- Filter (3)
- 微信公众帐号开发教程 (0)
- Android (6)
- log4j (6)
- 淘宝接口 (17)
- 支付集成 (3)
- 单点登录 (3)
- Html5 (27)
- 移动平台前端 (3)
- Linux (44)
- FusionCharts (27)
- Json Jackson Xml (5)
- 方培工作室-微信开发 (0)
- Apache与Tomcat与IIS整合 (10)
- Nginx (17)
- webService (2)
- apache (4)
- lucene (3)
- lodop (2)
- Shiro (3)
- zTree (2)
- ireport (12)
- Servlet3.0 (5)
- 前端美工 (19)
- AngularJS (1)
- C#开发微信门户及应用 (0)
- Shell (3)
- bat脚本 (16)
- Bootstrap (26)
- Less (10)
- photoshop (6)
- Redis (6)
- Mongodb (10)
- MyBatis (3)
- 数据结构 (0)
- 读写分离-主从复制 (0)
- JFinal (0)
- 百度地图api (3)
- hadoop-hbase-hive-spark (3)
- WebStorm (2)
- Quartz (5)
- ios (0)
- Mina (8)
- Android Studio (4)
- Ratchet教程 (0)
- 移动端重构系列 (1)
- cubic-bezier贝塞尔曲线CSS3动画工具 (1)
- nginx+tomcat+memcached集群 (0)
- 集群 (0)
- ZooKeeper (3)
- Dubbo (0)
- vpn (0)
- kafka (0)
- JVM垃圾回收机制 (0)
- 微信小程序 (0)
- Lua (0)
- Hystrix (0)
- Vue.js (0)
- mycat (0)
- Openresty (0)
- springBoot (0)
- 新分类 (0)
- guava (0)
- 大数据 (0)
- Sentinel (0)
最新评论
-
JackMacing:
中文怎么解决?
SpringMVC与iReport(JasperReports) 5.6整合开发实例 -
18335864773:
用pageoffice把.可以实现在线的文档操作.直接转pdf ...
转:使用jasperreport动态生成pdf,excel,html -
linhao0907:
推荐一款轻量开源的支付宝组件:https://github.c ...
关于Alipay支付宝接口(Java版) -
songronghu:
太好了,非常有用,谢谢分享~
Java ConcurrentModificationException 异常分析与解决方案 -
wzwahl36:
http://www.atool.org/json2javab ...
Java下利用Jackson进行JSON解析和序列化
一、默认类型转换规则
在上一节中,已经了解了怎么使用那个annotations去提取请求中各种信息,不过得到的信息值默认都是一个string类型。
这一节介绍JAX-RS一些内置的自动类型转换及其规则。
理论上JAX-RS可以将请求信息转换成任一Java类型,只要该Java类型满足以下条件之一:
- 基本类型: int、short、float、double、byte、char 或 boolean 等
- 定义了带单个String参数的构造方法
- 拥有一个static的valueOf(String)方法,并且这个方法返回这个类型的一个实例
- java.util.List<T>、java.util.Set<T>或java.util.SortedSet<T>,其中 T 满足条件2或者3,或者是一个String
例如:
- @Path("/myservice")
- public class MyService {
- @GET
- @Produces("text/html")
- public String get(@HeaderParam("Referer") URL referer) {
- ...
- }
- }
- public enum Color {
- BLACK,
- BLUE,
- RED,
- WHITE,
- SILVER
- }
- @GET
- @Path("/{model}/{year}")
- @Produces("image/jpeg")
- public Jpeg getPicture(@PathParam("make") String make,
- @PathParam("model") String model,
- @MatrixParam("color") Color color) {
- ...
- }
- import java.util.List;
- @Path("/customers")
- public class CustomerResource {
- @GET
- @Produces("application/xml")
- public String getCustomers(
- @QueryParam("start") int start,
- @QueryParam("size") int size,
- @QueryParam("orderBy") List<String> orderBy) {
- ...
- }
- }
- 输入:GET /customers?orderBy=last&orderBy=first
如果转换失败,则认为client请求出错,返回一个404错误。
二、定义缺省值 @DefaultValue
通过使用@DefaultValue注释,可以给某个请求参数定义缺省值,当client的请求中未包含此参数,则缺省参数值将被使用,例如:
- @Path("/customers")
- public class CustomerResource {
- @GET
- @Produces("application/xml")
- public String getCustomers(@DefaultValue("0") @QueryParam("start") int start,
- @DefaultValue("10") @QueryParam("size") int size) {
- ...
- }
- }
如果请求中未提供 start 请求参数,则缺省值0将被使用;如果请求中未包含 size 参数,则缺省值10被使用。
三、强制不解码 @Encoded
使用@Encoded注释,用来告诉JAX-RS,不需要自动解码,直接使用编码后的请求值,例如:
- @GET
- @Produces("application/xml")
- public String get(@Encoded @QueryParam("something") String str) {...}
发表评论
-
JAX-RS入门 十二: 可伸缩的JAX-RS应用
2012-09-11 19:10 689一、HTTP Caching HTTP1.0中定义了E ... -
JAX-RS入门 十一:HATEOAS
2012-09-11 19:09 729HATEOAS全称:超媒体即状态应用引擎 (Hypermedi ... -
JAX-RS入门 十: 兼容与演进
2012-09-11 19:09 847网络服务会随着时间 ... -
JAX-RS入门 九: 内容约定(2)
2012-09-10 23:33 627JAX-RS与Conneg JAX-RS有一些用来帮助 ... -
JAX-RS入门 九: 内容约定(1)
2012-09-10 23:32 651通常一个SOA的应用都需要足够的灵活,以便于各种不同的客户端或 ... -
JAX-RS入门 八: HTTP响应
2012-09-10 23:32 1022首先先看一下HTTP中定义的响应码及其意义: ... -
JAX-RS入门 七: 数据处理(2)
2012-09-10 23:31 863上节介绍了JAX-RS中怎么与一些基础的对象进行交互,这节介绍 ... -
JAX-RS入门 六: 数据处理(1)
2012-09-10 23:30 906接下来要花两小节来介绍一下JAX-RS中的数据处理(Data ... -
JAX-RS入门 四: 注入
2012-09-09 12:39 1111一、Annotations @javax.ws.rs.Pa ... -
JAX-RS入门 三 :细节
2012-09-09 12:33 749一、若希望一个Java类能够处理REST请求,则这个类必须 ... -
JAX-RS入门 二 :运行
2012-09-09 12:31 961上一节,已经成功的定义了一个REST服务,并且提供了具体的 ... -
JAX-RS入门 一 :基础
2012-09-09 12:29 1744简介 JAX-RS是一套用java实现REST服务的规范,提 ...
相关推荐
CICS-Liberty-JAXRS-示例CICS-Liberty-J...查询目录项,例如: 参考: 还有其他方法可以转换 JSON 或配置 JAX-RS,请参阅下面的详细信息: 将 Jackson 与普通的旧 Java 对象(POJO)一起使用 IBM JAX-RS 入门:
【快速入门JAX-RS】 JAX-RS是Java API for RESTful Web Services的缩写,它是Java平台上的一个标准,用于构建RESTful Web服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,...
3. **JAXB(Java Architecture for XML Binding)**:JAX-WS中的一个重要组件,用于在Java对象和XML之间进行自动转换。 4. **WS-I(Web Services Interoperability Organization)**:提供了一系列的规范,确保不同...
5. **数据绑定**:CXF支持JAXB(Java Architecture for XML Binding)进行XML到Java对象的自动转换,简化了XML数据的处理。 6. **安全与认证**:文档可能涵盖了如何在CXF中集成安全机制,如WS-Security、OAuth2或...
通过深入学习和实践这些知识点,开发者可以创建高效、可靠且易于维护的API,无论是在"hello-world-apis"这样的入门项目还是实际的大型企业级应用中。在实际操作中,理解HTTP协议、熟悉Java编程、掌握图形理论以及对...
在Java中,我们通常使用JAX-WS(Java API for XML Web Services)或JAX-RS(Java API for RESTful Web Services)来开发Web服务。JAX-WS主要用于构建SOAP-based的Web服务,而JAX-RS则用于创建RESTful风格的服务。...
- **SOAP Binding**:JAX-WS将Java方法和SOAP消息之间的转换自动化,减少了开发者的负担。 4. **使用JAX-WS开发步骤** 1) 定义SEI接口。 2) 实现SEI接口,并添加必要的业务逻辑。 3) 使用`wsimport`工具生成...
- **JAX-WS与JAX-RS实现**:CXF提供了JAX-WS的完全实现,用于创建SOAP服务;同时,它也是JAX-RS规范的重要实现者,支持RESTful服务开发。 - **数据绑定**:CXF支持多种数据绑定技术,如JAXB(Java Architecture ...
- Apache CXF:一个智能的Web服务套件(包括JAX-WS和JAX-RS)。 - Apache Karaf:一个小型的基于OSGi的运行时环境,其中可以部署容器代理的应用程序。 - Apache MINA:一个高性能的NIO驱动的网络框架。 Camel的核心...
它提供了强大的支持,包括对JAX-WS和JAX-RS标准的实现,以及丰富的工具集,帮助开发者从Java类生成WSDL,反之亦然。本文将引导你逐步了解如何在项目中集成CXF,进行Web服务的开发。 **一、CXF WebService 准备工作*...
2. JAX-WS入门:讲解如何使用JAX-WS创建一个简单的Web服务和客户端,包括服务端点接口(SEI)、服务实现、WSDL生成等。 3. 消息处理:介绍消息模式,如RPC/encoded、RPC/literal和Document/literal。 4. 异常处理:...
它不仅支持基于JAX-WS的Web服务,还支持基于JAX-RS的RESTful服务。CXF提供了丰富的客户端和服务器端API,使得开发Web服务变得更加简单。 **二、Cfx Web Service开发流程** 1. **定义服务接口**:首先,你需要定义...
Java EE 7增强了JAX-RS 2.0,包括支持超媒体链接和更强大的异常处理。 通过"JavaEE-7-Samples"项目,开发者可以学习到如何在实际环境中应用这些技术,从而提升他们的Java EE开发技能。每个示例都会包含详细的代码和...
- **数据绑定**:CXF支持多种数据绑定技术,如JAXB(Java Architecture for XML Binding),用于自动将XML消息转换为Java对象,反之亦然。 - **协议栈**:CXF实现了众多WS-*协议,如WS-Security、WS-Addressing等,...
CXF支持JAX-WS和JAX-RS标准,分别用于构建SOAP和RESTful服务。JAX-WS是基于WSDL(Web服务描述语言)的,而JAX-RS则基于HTTP协议和URI设计原则。 **步骤一:创建CXF项目** 1. 设置开发环境:确保已经安装了Java JDK...
总的来说,RESTEasy结合JAX-RS和JAXB,提供了一种简洁、高效的方式来构建RESTful Web Services,减少了编码工作量,提高了可维护性。在实际项目中,你可以利用RESTEasy提供的各种功能,快速地搭建和扩展你的服务。而...
3. 数据绑定:CXF支持多种数据绑定机制,如JAXB,它可以自动将XML数据转换为Java对象,反之亦然。 4. 安全性:项目可能还涉及了如何使用CXF实现安全特性,如基本认证、SSL/TLS加密和WS-Security。 在“MyCxf”这个...
它提供了强大的服务实现和客户端调用能力,支持多种协议和规范,如JAX-WS、JAX-RS等。本指南将详细介绍如何使用CXF进行Web服务开发。 **一、CXF WebService 准备工作** 1. **官方网址**:[http://cxf.apache.org/]...
RESTEasy实现了JAX-RS规范中的内容协商功能,可以根据客户端的接受类型选择合适的表示形式。 #### 18. Content Marshalling/Providers RESTEasy提供了多种内容序列化和反序列化(即内容转换)机制,包括默认的JAX-...