RESTEasy

RESTEasyとは、JAX-RS仕様の実装である

JettisonライブラリとJacksonライブラリを選択できる

http://resteasy.jboss.org/docs.html

Jettison

<dependency>

<groupId>org.jboss.resteasy</groupId>

<artifactId>resteasy-jaxrs</artifactId>

<version>2.2.1.GA</version>

</dependency>

<dependency>

<groupId>org.jboss.resteasy</groupId>

<artifactId>resteasy-jaxb-provider</artifactId>

<version>2.2.0.GA</version>

</dependency>

<dependency>

<groupId>org.jboss.resteasy</groupId>

<artifactId>resteasy-jettison-provider</artifactId>

<version>2.2.0.GA</version>

</dependency>

import javax.xml.bind.annotation.XmlElement;

import javax.xml.bind.annotation.XmlRootElement;

import javax.xml.bind.annotation.XmlAttribute;

@XmlRootElement(name = "person")

public class Person {

@XmlElement(name = "name")

private String name;

@XmlElement(name = "age")

private int age;

@XmlAttribute

private String birth;

// getter, setter

}

フォーマット

[

{

"person":{

"@birth":"2010-01-02",

"name":"Andy",

"age":20

}

},

{

"person":{

"@birth":"2010-06-21",

"name":"Robby",

"age":29

}

}

]

★独自のInject方式

import org.jboss.resteasy.spi.ResteasyProviderFactory;

UriInfo uriInfo = ResteasyProviderFactory.getContextData(UriInfo.class);

下記と同じ

import javax.ws.rs.core.UriInfo;

@Context

private UriInfo uriInfo;

Jackson

<dependency>

<groupId>org.jboss.resteasy</groupId>

<artifactId>resteasy-jaxrs</artifactId>

<version>2.2.1.GA</version>

</dependency>

<dependency>

<groupId>org.jboss.resteasy</groupId>

<artifactId>resteasy-jackson-provider</artifactId>

<version>2.2.1.GA</version>

</dependency>

import org.codehaus.jackson.annotate.JsonProperty;

public class Person {

@JsonProperty("name")

private String name;

@JsonProperty("age")

private int age;

// getter, setter

}

フォーマット

[

{

"name":"Andy",

"age":20

},

{

"name":"Robby",

"age":29

}

]

★web.xmlでApplication指定

<context-param>

<param-name>resteasy.servlet.mapping.prefix</param-name>

<param-value>/rest</param-value>

</context-param>

<servlet>

<servlet-name>Resteasy</servlet-name>

<servlet-class>

org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher

</servlet-class>

<init-param>

<param-name>javax.ws.rs.Application</param-name>

<param-value>yourPackage.yourApplication</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>Resteasy</servlet-name>

<url-pattern>/rest/*</url-pattern>

</servlet-mapping>