展会信息港展会大全

GlassFish 4 中EclipseLink MOXY实现REST应用简介
来源:互联网   发布日期:2016-01-14 14:30:04   浏览:1611次  

导读:最近,随着JAVA EE 7 标准的最终落地,其中Oracle 还发布了GlassFish 4服务器,它可以说是JAVA EE 7标准的一种参考实现。 其中,Eclipse旗下的Eclips...

最近,随着JAVA EE 7 标准的最终落地,其中Oracle 还发布了GlassFish4服务器,它可以说是JAVA EE 7标准的一种参考实现。 其中,Eclipse旗下的EclipseLink开源项目向JAVE EE 7中贡献了不少力量,其中包括JPA 2.1 (JSR-338)的实现,另外一个贡献是本文向大家介绍的EclipseLinkMOXy项目,它是JAVE EE 7中JAX-RS(REST标准)的一个默认的JSONProvider。

首先简单介绍下Eclipse旗下的EclipseLink开源项目,它主要用来实现快速将JAVA中的对象转化为各种类型的XML,该项目主要有如下的特性:

对JPA-RS的增强支持

MOXY有十分强大的将各类JAVA对象序列化为XML以及XML反序列化为JAVA对象的能力。这在REST架构的应用中,MOXY可以用来实现JAX-RS标准中的各种转换,下面以一个REST的例子进行讲解。如果读者对REST和JAX-RS标准有不清楚的地方,请参考相关的资料。

我们设计一个最简单的Hello World的RESTWebservice。其中Customer对象是一个简单的POJO对象,代码如下:

可以看到,Customer对象中有一个PhoneNumber的表示电话号码的Pojo。代码中的注解都是遵守JAX-RS标准的REST相关的注解。其中,用注解

@MediaType.APPLICATION_XML和@ MediaType.APPLICATION_JSON,分别指出该REST会同时以XML和JSON的形式对外发布。而在JAX-RS标准中,用如下的方式,就可以实现REST的对外发布部署:

其中,@ApplicationPath 注解指定所有服务的相对基址,如果为空字符串,则直接使用上下文根路径。上面表示这个REST服务将以如http://localhost/rest/xxx的形式对外发布,应该的根为rest。

接下来我们具体看Customer这个POJO,代码如下:

在这个Customer对象中,其中保持了对另外一个对象phoneNumber的引用。使用@XmlElementWrapper,其目的是为了在XML中通过单独设置名为phoneNumber的别名标签去

更清晰的输出。

接下来请看PhoneNumber类,代码如下:

注意,其中使用了注解@XmlAttribute,将type设置为转换后XML中的一个属性,而@XmlValue则将字段value直接序列为值,即如下的样子:

赞助本站

人工智能实验室

相关热词: javaEE java

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港