XML-Beispiel mit Jersey JAXB

Dieses Tutorial zeigt Ihnen, wie Sie JAXB verwenden, um object in Jersey in XML zu konvertieren und an den Benutzer zurückzugeben.

1. Abhängigkeit

Um JAXB mit Jersey zu integrieren, ist keine zusätzliche Abhängigkeit erforderlich. Fügen Sie einfach " jersey-server.jar " hinzu.

2. JAXB-Anmerkung

Objekt mit JAXB-Anmerkung für spätere Konvertierung versehen.

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;
    }

}

Das obige Objekt wird in folgendes XML-Format konvertiert.

  <customer pin="value">
    <name>value</name>
  </customer>
  1. Jersey und XML

Um eine XML-Datei zurückzugeben, kommentieren Sie die Methode mit @Produces (MediaType.APPLICATION__XML) `. Jersey konvertiert das mit JAXB gekennzeichnete Objekt automatisch in eine XML-Datei.

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. Demo

Wenn das URI-Muster „ xml/customer/\ {param value} “ angefordert wird, wird eine formatierte XML-Datei zurückgegeben.

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

xml und jersey

Quellcode herunterladen

Laden Sie es herunter - XML-Support-Jersey-Example.zip (6 KB)