2010-07-08 9 views
5

Chcę zrobić usługę Post to Jersey Rest. Jaki jest standardowy sposób robienia tego?Jersey Zużywa XML post

@Post 
@Consumes(MediaType.Application_xml) 
public Response method(??){} 
+0

Hmm. Czy chcesz ustawić klienta POST na istniejącą usługę lub wdrożyć usługę RESTULT na Jersey? –

Odpowiedz

4

Poniżej jest przykład działania postu:

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

Załóżmy, że masz fasoli java powiedzmy takie jak fasola pracownik. Dodaj tagi, aby powiedzieć:

@XmlRootElement mówi, że będzie to główny znacznik w xml. W takim przypadku możesz również podać nazwę dla głównego znacznika.

@XmlElement mówi, że będzie to tag sub wewnątrz znacznika głównego

znaczy, że próbka xml przyjdzie jako część ciała w żądaniu postu będzie wyglądało

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

Pisząc usługę internetową, aby zaakceptować taki xml, możemy napisać następującą metodę.

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

Po wywołaniu tej usługi otrzymasz następujący xml jako część odpowiedzi.

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

użyciu @Xml ... adnotacje, staje się bardzo łatwe do unmarshal i Marszałka obiektów żądania i odpowiedzi.

Podobne podejście można uważać za wkład JSON, jak i wyjście JSON po prostu używając MediaType.APPLICATION_JSON zamiast APPLICATION_XML

Więc dla XML jako wejście, można uzyskać xml jako wyjście jako część Odpowiedź http. Mam nadzieję, że to pomoże.