泽西岛消费XML帖子

Jus*_*tin 5 xml post jersey

我想发布一个帖子到泽西休息服务.这样做的标准方法是什么?

@Post
@Consumes(MediaType.Application_xml)
public Response method(??){}
Run Code Online (Sandbox Code Playgroud)

rah*_*cha 6

假设你有一个java bean说一个员工bean,比如.添加标签告诉

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

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

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }
}
Run Code Online (Sandbox Code Playgroud)

@XmlRootElement告诉它这将是xml中的主标记.在这种情况下,您也可以指定主标记的名称.

@XmlElement告诉这将是根标记内的子标记

比如,在post请求中作为body的一部分出现的示例xml看起来像

<?xml version="1.0" encoding="UTF-8"?>
<Employee>
 <employeeName>Jack</employeeName>
</Employee>
Run Code Online (Sandbox Code Playgroud)

在编写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();
}
Run Code Online (Sandbox Code Playgroud)

在调用此服务时,您将获得以下xml作为响应的一部分.

<Employee>
<employeeName> Jack Welcome </employeeName>
</Employee>
Run Code Online (Sandbox Code Playgroud)

使用@Xml ...注释,解组和编组请求和响应对象变得非常容易.

通过使用MediaType.APPLICATION_JSON而不是APPLICATION_XML,可以对JSON输入和JSON输出采取类似的方法

因此,对于xml作为输入,您可以将xml作为输出作为http响应的一部分.希望这可以帮助.


bdo*_*han 4

下面是 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();
}
Run Code Online (Sandbox Code Playgroud)