我想發佈到Jersey Rest服務。這樣做的標準方式是什麼?Jersey消費XML文章
@Post
@Consumes(MediaType.Application_xml)
public Response method(??){}
我想發佈到Jersey Rest服務。這樣做的標準方式是什麼?Jersey消費XML文章
@Post
@Consumes(MediaType.Application_xml)
public Response method(??){}
下面是一個POST操作的例子:
@POST
@Consumes({"application/xml", "application/json"})
public Response create(@Context UriInfo uriInfo, Customer entity) {
entityManager.persist(entity);
entityManager.flush();
UriBuilder uriBuilder = uriBuiler.path(String.valueOf(entity.getId()));
return Response.created(uriBuilder.build()).build();
}
假設你有一個Java bean說僱員豆等。添加標籤以告訴
@XmlRootElement (name = "Employee")
public class Employee {
String employeeName;
@XmlElement
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
}
@XmlRootElement指出這將是xml中的主標籤。在這種情況下,您也可以爲主標籤指定一個名稱。
@XmlElement告訴,這將是根標籤內的子標籤
說,示例XML是將來作爲身體的POST請求看起來像一個部分
<?xml version="1.0" encoding="UTF-8"?>
<Employee>
<employeeName>Jack</employeeName>
</Employee>
當編寫web服務來控制這樣一個xml時,我們可以編寫下面的方法。
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response getEmployee(Employee employee) {
employee.setEmployeeName(employee.getEmployeeName() + " Welcome");
return Response.status(Status.OK).entity(employee).build();
}
在調用此服務時,您將得到以下xml作爲響應的一部分。
<Employee>
<employeeName> Jack Welcome </employeeName>
</Employee>
使用@Xml ...註解,解組和編組請求和響應對象變得非常容易。
類似的方法可採取JSON輸入和輸出JSON通過僅僅使用MediaType.APPLICATION_JSON代替APPLICATION_XML
所以對於一個XML作爲輸入,你可以得到一個XML作爲輸出的一部分http響應。 希望這有助於。
嗯。您是否想要將客戶端POST發送到現有服務或實現Jersey RESTful服務? – 2010-07-09 17:28:58