2010-07-08 16 views
5

Gönderiyi Gönderin Rest servisi yapmak istiyorum. Bunu yapmanın standart yolu nedir?Forma XML gönderimini tüketiyor

@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(); 
} 
+0

Hmm. Mevcut bir servise POST yapmak veya Jersey RESTful servisini uygulamak ister misiniz? –

cevap

4

Aşağıda bir post operasyonunun bir örnektir. etiketler

@XmlRootElement (name = "Employee") 
public class Employee { 
    String employeeName; 

    @XmlElement 
    public String getEmployeeName() { 
     return employeeName; 
    } 

    public void setEmployeeName(String employeeName) { 
     this.employeeName = employeeName; 
    } 
} 

@XmlRootElement bu xml ana etiketi olacağını söyler söylemek ekleyin. Bu durumda ana etiket için de bir isim belirtebilirsiniz.

@XmlElement bu

Say, gibi bir şey olacaktır sonrası isteğinde vücudun bir parçası olarak gelecek numune xml kök etiketinin içine alt etiketi olacağını söyler

<?xml version="1.0" encoding="UTF-8"?> 
<Employee> 
<employeeName>Jack</employeeName> 
</Employee> 

Bu tür bir xml'i dikkate almak için bir web servisi yazarken aşağıdaki yöntemi yazabiliriz.

@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(); 
} 

Bu hizmeti çağırırken, yanıtın bir parçası olarak aşağıdaki xml'yi alırsınız. ... @xml ek açıklamaları kullanarak

<Employee> 
<employeeName> Jack Welcome </employeeName> 
</Employee> 

, bu unmarshal ve istek ve yanıt nesneleri sıralamakta çok kolay hale geldi.

Benzer yaklaşım, sen bir parçası olarak bir çıkış olarak bir xml alabilirsiniz sadece MediaType.APPLICATION_JSON kullanarak yerine APPLICATION_XML

Yani girdi olarak bir xml için tarafından JSON girdi hem de JSON çıkış için alınabilir http yanıtı. Bu yardımcı olur umarım.

6

bir java fasulye olarak bir çalışanın fasulye böyle söylemek olduğunu varsayalım:

@Post 
@Consumes(MediaType.Application_xml) 
public Response method(??){} 
İlgili konular