RESTEasy ist JAXB erforderlich, um XML-Dateien zu unterstützen. In diesem Lernprogramm zeigen wir Ihnen, wie Sie ein Benutzerobjekt erstellen, in eine XML-Datei konvertieren und es an den Client zurückgeben.
1. RESTEasy JAXB
Um JAXB in RESTEasy verwenden zu können, müssen Sie die Abhängigkeit " resteasy-jaxb-provider.jar " angeben.
Datei: pom.xml
<repositories>
<repository>
<id>JBoss repository</id>
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
</repository>
</repositories>
<dependencies>
<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>
</dependencies>
2. JAXB XML Provider
Erstellen Sie ein Objekt und kommentieren Sie es mit der JAXB-Anmerkung, um die XML-Dateikonvertierung zu unterstützen.
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class User {
String username;
String password;
int pin;
@XmlElement
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@XmlElement
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@XmlAttribute
public int getPin() {
return pin;
}
public void setPin(int pin) {
this.pin = pin;
}
}
Mit der JAXB-Anmerkung wird das obige Objekt in das folgende XML-Format konvertiert.
<user pin="value">
<password>value</password>
<username>value</username>
</user>
-
JAX-RS
Um eine XML-Datei zurückzugeben, kommentieren Sie die Servicemethode mit @Produces ("application/xml") `. RESTEasy konvertiert das mit JAXB gekennzeichnete Objekt in eine XML-Datei und kehrt zum Client zurück.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/xml/user")
public class XMLService {
@GET
@Path("/get")
@Produces("application/xml")
public User getUserInXML() {
User user = new User();
user.setUsername("mkyong");
user.setPassword("password");
user.setPin(123456);
return user;
}
}
3. Demo
Wenn das URI-Muster „ /xml/user/get “ angefordert wird, wird die folgende XML-Datei zurückgegeben.
<user pin="123456">
<password>password</password>
<username>mkyong</username>
</user>
Quellcode herunterladen
Laden Sie es herunter - Link://wp-content/uploads/2011/07/JAX-RS-Download-XML-JAXB-Example.zip[JAX-RS-Download-XML-JAXB-Example.zip](7 KB)
Referenzen
-
http://docs.jboss.org/resteasy/docs/2.2.1.GA/userguide/html/Built in JAXB__providers.html
JAXB-Anbieter]