【问题标题】:Create XML data to be returned in restful webservice in java在java中创建要在restful webservice中返回的XML数据
【发布时间】:2012-12-28 03:40:01
【问题描述】:

如何创建自己的 xml 数据以在 Java 中与 Restful Web 服务一起使用?我确实使用StringBuilder 创建了一个字符串文件,但是当我尝试在客户端消费时,从其中提取属性总是会出现问题,总是会出错。

下面列出的是我的代码;

Employee emp0 = new Employee("David", "Finance");
Employee emp1 = new Employee("Smith", "HealthCare");
Employee emp2 = new Employee("Adam", "Information technology");
Employee emp3 = new Employee("Stephan", "Life Sciences");

map.put("00345", emp0);
map.put("00346", emp1);
map.put("00347", emp2);
map.put("00348", emp3);

@GET
@Path("{id}")
@Produces({"application/xml"})
public String find(@PathParam("id") String id) {

    Employee emp = (Employee) map.get(id);
    if (emp != null) {
        StringBuilder br = new StringBuilder();
        br.append("<?xml version='1.0' encoding='UTF-8'?>").append(nl);
        br.append("<Employee>").append(nl);
        br.append("<Emp-ID>").append(id).append(" </Emp-ID >").append(nl);
        br.append("<Name>").append(emp.getName()).append(" </Name>").append(nl);
        br.append("<dept>").append(emp.getDept()).append(" </Department>").append(nl);
        br.append("</Employee>");
        return br.toString();
    } else {
        return "Unknown id";
    }
}

我有一个名为 Employee 的 POJO,其属性也为 Name 和 Department。 谢谢。

【问题讨论】:

    标签: java web-services rest


    【解决方案1】:

    我建议您在 Employee 类上使用 JAXB 注释,而不是这个 stringbuilder 练习。
    这个link 应该可以帮助您入门
    这个link 应该回答任何进一步的问题

    【讨论】:

      【解决方案2】:

      如果您在 Employee 类上添加 @XmlRootElement(name="Employee") 注释,那么您可以执行以下操作:

      @GET
      @Path("{id}")
      @Produces({"application/xml"})
      public Employee find(@PathParam("id") String id) {
      
          return (Employee) map.get(id);
      
      }
      

      那么@XmlElement注解可以用来覆盖元素名称。您还可以利用 JAX-RS Response 对象返回状态代码而不是 String 错误消息。

      更多信息

      【讨论】:

        猜你喜欢
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-06
        • 1970-01-01
        • 2012-07-02
        • 2014-12-05
        • 1970-01-01
        相关资源
        最近更新 更多