Jersey JAX-RS пример работы с XML

Разработаем простой JAX-RS сервис, который возвращает ответ в формате XML. Для этого создадим простой POJO-класс, на основе которого будет формироваться ответ:

package ru.mydesignstio.jaxrs.model;

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

@XmlRootElement(name = "person")
public class Person {
    private String name;
    private String id;

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

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

    @XmlAttribute
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}

Для того, чтобы сервис возвращал ответ в формате XML добавляем аннотацию @Produces(MediaType.APPLICATION_XML):

package ru.mydesignstio.jaxrs.service;

import ru.mydesignstio.jaxrs.model.Person;

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;

@Path("/person")
public class PersonService {

    @GET
    @Path("/{id}")
    @Produces(MediaType.APPLICATION_XML)
    public Person getPerson(
            @PathParam("id") String id){

        Person person = new Person();
        person.setName("MyDesignStudio");
        person.setId(id);
        return person;
    }
}

Обращаемся к сервису по адресу /person/{id} и получаем результат:

JAX-RS работа с XML
JAX-RS работа с XML