java - 为 RESTful Web 服务生成 POJO

标签 java rest web service

我们从 SOAP 服务中的 WSDL/XSD 生成 POJO。我们如何在使用 RESTful Web 服务时生成 POJO?

最佳答案

由于您没有用于该服务的 WSDL 或 WADL(一种相对常见的情况),您将不得不以艰难的方式完成此任务。

如果服务采用 XML,一种可能的方法是编写 XSD 来描述它采用和返回的文档。如果您以前编写过 XSD 并且您使用的编辑器旨在协助此类操作(我使用的是 Eclipse 中的编辑器,但还有许多其他编辑器),那么这并不难。否则,只需自己编写 POJO。我建议保持这样的 POJO 非常简单,可能根本没有方法,只有公共(public)字段和注释。需要注意的主要注释是:

  • @XmlRootElement — 这些命名元素将形成消息的外部,向任一方向传播。去上课。
  • @XmlElement — 将映射字段标记为消息的子元素。
  • @XmlAttribute — 将映射字段标记为属性。
  • @XmlType — 将类标记为适合用作另一条消息的复合元素的类型。

还有很多,但最好的办法是编写一些 POJO 并尝试使用它们:

@XmlRootElement
public class Example {
    @XmlAttribute
    public String pqr;
    @XmlElement
    public String abc;
    @XmlElement
    public List<String> def = new ArrayList<String>();
}
Example example = new Example();
example.abc = "oscar";
example.def.add("bert");
example.def.add("ernie");
// Omitting the attribute; null maps to absence/optionality

JAXBContext c = JAXBContext.newInstance(Example.class);
Marshaller m = c.createMarshaller();
m.marshal(example, System.out);

相反的方向是解码(当然是使用 JAXB Unmarshaller)并且非常相似。

要使用 JSON 而不是 XML,请使用 Jettison 库 as outlined in this blog post . (本质上,您只是在 JSON 和 JAXB 之间放置了一个特殊的 DOM 树写入器/读取器。)

关于java - 为 RESTful Web 服务生成 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21201946/

相关文章:

java - 使用 Java (REST) 的 AngularJS 服务?

javascript - 在没有eval()的情况下在javascript中将字符串转换为数组

html - SVG 线性渐变显示在一条路径上,但不显示在另一条路径上

java - Hibernate - FetchType.LAZY 急切地加载数据

rest - 微服务认证

java - spring+springmvc+mybatis 未提交

ruby-on-rails - ExtJs4 json data.store 和 Rails

jquery - 在 visual studio 中创建网站

java - 在 OS X Lion 上的 Java 7 中使用 JTables 对 setValueAt 的虚假调用?

java - 使用按钮清除文本字段 (Java)