`
sillycat
  • 浏览: 2552018 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring Hot(1)Jersey Integration

    博客分类:
  • JAVA
 
阅读更多

Spring Hot(1)Jersey Integration

1. Marshal and UnMarshal the Object to XML
The object with annotation
package com.sillycat.easyspringrest.model;

 

 

import javax.xml.bind.annotation.XmlAccessType;

import javax.xml.bind.annotation.XmlAccessorType;

import javax.xml.bind.annotation.XmlElement;

import javax.xml.bind.annotation.XmlRootElement;

import javax.xml.bind.annotation.XmlTransient;

 

@XmlRootElement@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)

public class Product {

 

private Long id;

private String productName;

private String productLink;

private String desn;

//XmlTransient means that we will ignore in generated XML

 

@XmlTransient

public Long getId() {

 returnid;

}

publicvoid setId(Long id) {

 this.id = id;

}

 

@XmlElement(name="name")

public String getProductName() {

 return productName;

}

public void setProductName(String productName) {

 this.productName = productName;

}

public String getProductLink() {

 return productLink;

}

public void setProductLink(String productLink) {

 this.productLink = productLink;

}

public String getDesn() {

 return desn;

}

public void setDesn(String desn) {

 this.desn = desn;

}

@Override

public String toString() {

 return"Product [id=" + id + ", productName=" + productName + ", productLink=" + productLink + ", desn=" + desn + "]";

}

}


The main Application to Marshal and Unmarshal the Object
package com.sillycat.easyspringrest.model;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class ProductJabxMain {

     public static void main(String[] args) {
          Product item1 = new Product();
          item1.setDesn("desn");
          item1.setId(Long.valueOf(1));
          item1.setProductLink("http://github.com/luohuazju");
          item1.setProductName("Product Name");

          try {
               File file = new File("/tmp/product.xml");
               JAXBContext jaxbContext = JAXBContext.newInstance(Product.class);
               Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

               // output pretty printed
               jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

               jaxbMarshaller.marshal(item1, file);
          } catch (JAXBException e) {
               e.printStackTrace();
          }

          JAXBContext jaxbContext = null;
          Product item2 = null;
          FileReader fileReader = null;
          try {
               fileReader = new FileReader("/tmp/product.xml");

               jaxbContext = JAXBContext.newInstance(Product.class);
               item2 = (Product) jaxbContext.createUnmarshaller().unmarshal(
                         fileReader);
               System.out.println("Item:" + item2);
          } catch (JAXBException e) {
               e.printStackTrace();
          } catch (FileNotFoundException e) {
               e.printStackTrace();
          }
     }

}

2. Marshal and Unmarshal via Jackson
Dependency
<dependencyorg="org/codehaus/jackson"name="jackson-core-lgpl"rev="1.9.10"/><dependencyorg="org/codehaus/jackson"name="jackson-mapper-lgpl"rev="1.9.10"/>

Some new annotation
//XmlTransient means that we will ignore in generated XML@XmlTransient@JsonIgnore

@XmlElement(name="name")

@JsonProperty("name")

public String getProductName() {

 return productName;

}

The Main Application to Test the Annotation
package com.sillycat.easyspringrest.model;

import java.io.File;

import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Paths;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

import org.codehaus.jackson.map.SerializationConfig;

 

public class ProductJSONMain {

public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {       

 

//create ObjectMapper instance       

ObjectMapper objectMapper = new ObjectMapper();        objectMapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);       

 

//convert Object to json string       

Product item1 = new Product();       

item1.setDesn("desn");

item1.setId(Long.valueOf(1));

item1.setProductLink("http://github.com/luohuazju");

item1.setProductName("Product Name"); //write to file

File file = new File("/tmp/product.json");       

 

objectMapper.writeValue(file, item1); //read json file data to String       

byte[] jsonData = Files.readAllBytes(Paths.get("/tmp/product.json"));       

//convert json string to object       

Product item = objectMapper.readValue(jsonData, Product.class);                 System.out.println("Product Object\n" + item);

}

}


References:
https://www.ibm.com/developerworks/cn/web/wa-aj-tomcat/
http://www.pigg.co/jersey-spring-rest.html
http://xosadan.iteye.com/blog/1119235

official website
https://jersey.java.net/
https://jersey.java.net/documentation/latest/getting-started.html

Spring MVC Controller REST and Groovy Controller REST
http://sillycat.iteye.com/blog/897285
http://sillycat.iteye.com/blog/897286
http://sillycat.iteye.com/blog/897588
http://sillycat.iteye.com/blog/1477354
http://sillycat.iteye.com/blog/1477387
http://sillycat.iteye.com/blog/1477464

Java XML JSON
http://sillycat.iteye.com/blog/805303 Java Object vs XML
http://docs.oracle.com/javase/tutorial/jaxb/intro/   jaxb doc
https://github.com/FasterXML/jackson-annotations  Java Object vs JSON
http://www.journaldev.com/2324/jackson-json-processing-api-in-java-example-tutorial  Jackson Example

分享到:
评论

相关推荐

    Spring4整合Jersey2.9

    在本文中,我们将深入探讨如何将Spring4框架与Jersey2.9进行集成,以便创建一个功能丰富的RESTful Web服务。这个入门案例采用Maven作为项目构建工具,使得整个过程更加简便。 首先,理解Spring4和Jersey2.9的核心...

    Spring Integration + Spring WS 整合

    Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责集成系统和 Web 服务。今天,我们将探讨如何将这两个框架整合在一起,实现一个完整的 Web ...

    Jersey Spring Integration Demo

    关于Spring,也是我们常用的IOC在java下一种实现了,不过相对.net下IOC的实现,Spring相对更强大(反正之前在.Net下,我是习惯了啥都去配置,在Java下才知道有一种Scan模式,本Demo中也用到了,不知道的可以查查...

    spring integration in action

    **1: Spring Integration 的介绍** - **Spring Integration 概览:** Spring Integration 是一个基于 Spring 框架的企业集成解决方案,它提供了一种声明式的、面向消息的方式来构建集成应用程序。 - **组件介绍:**...

    Spring Integration API(Spring Integration 开发文档).CHM

    Spring Integration。 官网 Spring Integration API。 Spring Integration 开发文档。

    spring source spring integration in action 随书源码 example code

    1. **通道**:Spring Integration中的通道是消息传递的基础设施,它们定义了消息流动的路径。你可以将通道视为一种数据的容器,消息在通道之间流动,通过过滤器、路由器等组件进行处理。 2. **消息**:消息是Spring...

    spring Integration 介绍

    ### Spring Integration介绍 #### 一、Spring Integration概览 **Spring Integration** 是Spring框架的一个扩展项目,它提供了构建企业集成应用程序所需的各种功能和支持。通过利用现有的Spring编程模型和依赖注入...

    spring2.5 struts2.0 Integration 完整源码下载

    1. **Spring-Struts 2 整合框架**: 通过 Spring 的 DispatcherServlet 与 Struts 2 的 FilterDispatcher 协同工作,实现请求的调度。 2. **Action 实例化**: 使用 Spring 来管理 Struts 2 的 Action 对象,通过 DI ...

    Spring BlazeDS Integration 1.0.0

    **Spring BlazeDS Integration 1.0.0** 是一个关键的框架,它为Spring应用程序与Adobe Flex客户端之间的通信提供了一种高效且灵活的解决方案。这个版本的发布标志着开发者可以更轻松地利用Flex的富互联网应用(RIA)...

    Spring4 Hibernate4 jersey项目源码

    《Spring4 Hibernate4 Jersey项目源码解析》 在IT领域,Spring、Hibernate和Jersey是三个备受推崇的开源框架,它们分别在应用层管理、持久层操作和RESTful服务提供方面展现出强大的功能。本篇文章将深入探讨一个...

    Jersey+Spring:解决Jersey单实例问题

    然而,无论采用哪种方式,集成 Spring 和 Jersey 都可以有效地解决 Jersey 单例带来的线程安全问题,确保服务的线程安全性,提升系统的稳定性和可靠性。同时,Spring 还提供了其他优势,比如依赖注入、AOP(面向切面...

    Spring3.2.5Hibernate4.0.1Integration 完整範例

    1. **配置文件**:如 `spring-context.xml` 和 `hibernate.cfg.xml`,分别定义 Spring 的bean配置和 Hibernate 的数据库连接信息。 2. **实体类**:对应数据库表的 Java 类,使用 Hibernate 的注解或 XML 配置进行...

    jersey+spring+srpingmvc实现上传

    1. **Jersey**: Jersey是一个基于JAX-RS规范的实现,它允许开发者创建RESTful服务。在文件上传场景中,Jersey可以用来创建一个HTTP POST接口,接收客户端发送的文件。 2. **Spring框架**: Spring是一个全面的Java...

    Jersey+spring Demo

    1. **pom.xml** - Maven配置文件,定义了项目依赖,包括Jersey和Spring的相关库。 2. **web.xml** - Web应用的部署描述符,配置了Jersey的Servlet和Spring的DispatcherServlet。 3. **ApplicationConfig.java** - ...

    Spring Integration 相关PDF

    本文是一篇关于Spring Integration框架的介绍与分析,该框架是SpringSource公司的产品,旨在帮助企业应用间的集成。文章深入探讨了企业应用集成(EAI)的定义、消息传递的概念以及Spring Integration框架的基本概念...

    spring-jersey-integration-example:将 spring 与 jersey 集成的示例

    spring-jersey-integration-example 将 Spring 与 Jersey 集成的示例。 还解释了如何以 2 种不同的格式(XML / JSON)提供相同的数据。 内容类型是根据“接受”标头确定的。 'text/xml' =&gt; XML 'application/...

    spring-integration2.03

    《Spring Integration 2.0.3:源码与实践解析》 Spring Integration 是 Spring 框架的一个扩展,旨在提供轻量级、企业级的集成解决方案,它简化了应用程序之间的数据传输,支持多种协议和消息传递模式。在本文中,...

    Spring Integration源码

    1. **通道(Channels)**:在 Spring Integration 中,通道是数据传输的载体,相当于消息的高速公路。消息通过发送到通道,然后被通道上的处理器或适配器处理。 2. **消息(Message)**:Spring Integration 中的消息...

Global site tag (gtag.js) - Google Analytics