javascript
moxy json介绍_MOXy作为您的JAX-RS JSON提供程序–服务器端
moxy json介紹
在之前的系列文章中,我介紹了如何利用EclipseLink JAXB(MOXy)創(chuàng)建RESTful數(shù)據(jù)訪問服務(wù)。 在本文中,我將介紹在服務(wù)器端利用MOXy的新JSON綁定添加對基于JAXB映射的JSON消息的支持有多么容易。- MOXy作為您的JAX-RS JSON提供程序–服務(wù)器端
- MOXy作為您的JAX-RS JSON提供程序–客戶端
為什么選擇EclipseLink JAXB(MOXy)?
以下是將MOXy用作JSON綁定提供程序的一些優(yōu)點:
- JSON綁定提供程序中對JAXB注釋的最廣泛支持。
- 支持XML和JSON: 綁定到JSON和XML – Geocode示例 。
- MOXy包含@XmlInverseReference之類的擴展名,用于將JPA實體映射到JSON和XML: 第3部分–將JPA實體映射到XML(使用JAXB) 。
- 外部映射文檔可以替代注釋: JAX-RS Service中的MOXy的XML元數(shù)據(jù) 。
客戶服務(wù)
使用@Produces和@Consumes批注控制JAX-RS服務(wù)理解的消息類型。 在本文中,我指定了除“ application / xml”外,所有操作現(xiàn)在都支持“ application / json”。 以下帖子提供了對該服務(wù)的更詳細(xì)描述: 創(chuàng)建RESTful Web服務(wù)–第4/5部分 。
package org.example;import java.util.List; import javax.ejb.*; import javax.persistence.*; import javax.ws.rs.*; import javax.ws.rs.core.MediaType;@Stateless @LocalBean @Path("/customers") public class CustomerService {@PersistenceContext(unitName="CustomerService",type=PersistenceContextType.TRANSACTION)EntityManager entityManager;@POST@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})public void create(Customer customer) {entityManager.persist(customer);}@GET@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})@Path("{id}")public Customer read(@PathParam("id") long id) {return entityManager.find(Customer.class, id);}@PUT@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})public void update(Customer customer) {entityManager.merge(customer);}@DELETE@Path("{id}")public void delete(@PathParam("id") long id) {Customer customer = read(id);if(null != customer) {entityManager.remove(customer);}}@GET@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})@Path("findCustomersByCity/{city}")public List<Customer> findCustomersByCity(@PathParam("city") String city) {Query query = entityManager.createNamedQuery("findCustomersByCity");query.setParameter("city", city);return query.getResultList();}}MOXyJSONProvider
我們將實現(xiàn)JAX-RS MessageBodyReader / MessageBodyWriter,以插件支持MOXy的JSON綁定。 此實現(xiàn)足夠通用,可以按原樣使用,以使用MOXy作為JAXB提供程序為任何JAX-RS服務(wù)啟用JSON綁定。 一些有趣的注意事項:
- MOXy沒有編譯時間依賴性。
- eclipselink.media-type屬性用于在unmarshaller(第34行)和marshaller(第55行)上啟用JSON綁定。
- eclipselink.json.include-root屬性用于指示@XmlRootElement批注在JSON綁定中應(yīng)被忽略(第35和56行)。
- 在創(chuàng)建JAXBContext時,代碼首先檢查以查看是否已為此類型注冊了JAXBContext(第70和71行)。 如果您想利用MOXy的外部映射文檔: JAX-RS Service中的MOXy的XML元數(shù)據(jù),這將很有用。
服務(wù)器設(shè)置
如果將GlassFish用作應(yīng)用程序服務(wù)器,則需要用EclipseLink 2.4安裝中的對應(yīng)軟件包替換以下EclipseLink軟件包。
- org.eclipse.persistence.antlr.jar
- org.eclipse.persistence.asm.jar
- org.eclipse.persistence.core.jar
- org.eclipse.persistence.jpa.jar
- org.eclipse.persistence.jpa-modelgen.jar
- org.eclipse.persistence.moxy.jar
- org.eclipse.persistence.oracle.jar
進一步閱讀
如果您喜歡這篇文章,那么您可能也會對以下內(nèi)容感興趣:
- RESTful服務(wù)
- MOXy作為您的JAX-RS JSON提供程序–客戶端
- 創(chuàng)建一個RESTful服務(wù)
- 第1部分–數(shù)據(jù)庫
- 第2部分–將數(shù)據(jù)庫映射到JPA實體
- 第3部分–將JPA實體映射到XML(使用JAXB)
- 第4部分– RESTful服務(wù)
- 第五部分–客戶
- JAX-RS服務(wù)中的MOXy的XML元數(shù)據(jù)
- JSON綁定
- 使用EclipseLink MOXy進行JSON綁定– Twitter示例
- 綁定到JSON和XML –地理編碼示例
- 應(yīng)用服務(wù)器集成
- GlassFish 3.1.2充滿了MOXy(EclipseLink JAXB)
- EclipseLink MOXy是WebLogic Server 12c中的JAXB提供程序
參考: MOXy作為您的JAX-RS JSON提供程序–來自Java XML和JSON綁定博客的JCG合作伙伴 Blaise Doughan的服務(wù)器端 。
翻譯自: https://www.javacodegeeks.com/2012/04/moxy-as-your-jax-rs-json-provider.html
moxy json介紹
總結(jié)
以上是生活随笔為你收集整理的moxy json介绍_MOXy作为您的JAX-RS JSON提供程序–服务器端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宏?电脑开了闪下就关(Excel点击启用
- 下一篇: spring roo_使用Spring