Пример XML с Джерси JAXB

Из этого туториала вы узнаете, как использовать JAXB для преобразования объекта в XML в Джерси и возврата его пользователю.

1. Зависимость

Для интеграции JAXB с Джерси дополнительная зависимость не требуется. Просто включите « jersey-server.jar ».

2. JAXB Аннотация

Аннотируйте объект с аннотацией JAXB, для преобразования позже.

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "customer")
public class Customer {

    String name;
    int pin;

    @XmlElement
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @XmlAttribute
    public int getPin() {
        return pin;
    }

    public void setPin(int pin) {
        this.pin = pin;
    }

}

Выше объект будет преобразован в следующий формат XML.

  <customer pin="value">
    <name>value</name>
  </customer>

3. Джерси и XML

Чтобы вернуть файл XML, аннотируйте метод с помощью @Produces (MediaType.APPLICATION__XML) . Джерси автоматически преобразует аннотированный объект JAXB в файл XML.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.mkyong.Customer;

@Path("/xml/customer")
public class XMLService {

    @GET
    @Path("/{pin}")
    @Produces(MediaType.APPLICATION__XML)
    public Customer getCustomerInXML(@PathParam("pin") int pin) {

        Customer customer = new Customer();
        customer.setName("mkyong");
        customer.setPin(pin);

        return customer;

    }

}

4. Демо

При запросе шаблона URI « xml/customer/\ {param value} » будет возвращен отформатированный файл XML.

URL: http://localhost : 8080/RESTfulExample/rest/xml/customer/999

xml and jersey

Скачать исходный код

Загрузить его - ссылка://wp-content/uploads/2011/07/XML-Support-Jersey-Example.zip[XML-Support-Jersey-Example.zip](6 КБ)

Рекомендации

в Джерси]

ссылка://тег/интеграция/[интеграция]ссылка://тег/jaxb/[jaxb]ссылка://тег/джерси/[джерси]ссылка://тег/xml/[xml]