xml - Jersey 消费 XML post

标签 xml post jersey

我想创建一个 Post to Jersey Rest 服务。这样做的标准方法是什么?

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

最佳答案

假设您有一个 java bean,比如一个 employee 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 表示这将是根标签内的子标签

例如,将作为 post 请求正文的一部分出现的示例 xml 看起来像

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

在写一个webservice接受这样一个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...注释,解码和编码请求和响应对象变得非常容易。

只需使用 MediaType.APPLICATION_JSON 而不是 APPLICATION_XML,即可对 JSON 输入和 JSON 输出采用类似的方法

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

关于xml - Jersey 消费 XML post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3203989/

相关文章:

java - 无法在 Jersey 中获取 POST 请求的有效负载

java - 浏览器是否为所有页面请求发送 PAGE-REQUEST 作为 "GET"http 方法?

java - 使用 Jersey 读取时区和 JSON

spring - NoSuchMethodError : com. sun.jersey.core.reflection.ReflectionHelper.getOsgiRegistryInstance()Lcom/sun/jersey/core/osgi/OsgiRegistry;

java - JSON-XML 转换器 Java 库?

MVC3 中的 jQuery Ajax POST

xml - Ant:scp 创建目录(如果不存在)

java - 如何为使用 JSON JAXB 绑定(bind)的 Jersey REST API 生成文档?

c++ - 使用 C/C++ 读取/写入文件元数据

C 从 FILE* 中读取带空格的格式化行