2010-07-08 32 views
5

Quiero hacer un post en Jersey Rest service. ¿Cuál es la forma estándar de hacer esto?Jersey consume XML post

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

Hmm. ¿Desea hacer una POST de cliente a un servicio existente o implementar un servicio RESTful de Jersey? –

Respuesta

4

A continuación se muestra un ejemplo de una operación de 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(); 
} 
6

Suponga que tiene un Java Bean decir un bean de los empleados, tales como. Añadir las etiquetas para contar

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

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

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

@XmlRootElement dice que esta será la etiqueta principal de XML. En este caso, también puede especificar un nombre para la etiqueta principal.

@XmlElement dice que esto sería la etiqueta sub dentro de la etiqueta raíz

Say, el XML de ejemplo que vendrá como una parte del cuerpo en la solicitud posterior quedará del siguiente modo

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

Al escribir un servicio web para aceptar dicho xml, podemos escribir el siguiente método.

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

Al llamar a este servicio, obtendrá el siguiente xml como parte de la respuesta.

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

usando @Xml ... anotaciones, se hace muy fácil de deserializar y reunir los objetos de petición y respuesta.

enfoque similar se puede dar por la entrada JSON, así como la salida JSON sólo por el uso del MediaType.APPLICATION_JSON en lugar de APPLICATION_XML

Así que para un XML como entrada, se puede obtener un xml como salida como parte de la respuesta http Espero que esto ayude.

Cuestiones relacionadas