本教程向您展示如何使用JAXB 在Jersey中将对象转换为XML并将其返回给用户。
1.依赖
要将JAXB与Jersey集成在一起,不需要额外的依赖关系。 只要包含“ 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. Jersey和XML
要返回XML文件,请使用@Produces(MediaType.APPLICATION_XML)
注释该方法。 Jersey将自动将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文件。
网址: http:// localhost:8080 / RESTfulExample / rest / xml / customer / 999
下载源代码
下载它– XML-Support-Jersey-Example.zip (6 KB)
参考文献
翻译自: https://mkyong.com/webservices/jax-rs/download-xml-with-jersey-jaxb/