Java 为RESTful web服务生成POJO

Java 为RESTful web服务生成POJO,java,rest,web,service,Java,Rest,Web,Service,我们在SOAP服务中从WSDL/XSD生成POJO。我们如何在使用RESTful web服务时生成POJO 由于您没有服务的WSDL或WADL(这是一种相对常见的情况),因此您将不得不以艰难的方式完成这项工作 如果服务接受XML,一种可能的方法是编写和使用XSD来描述它接受和返回的文档。如果您以前编写过XSD,并且使用了专门设计的编辑器来辅助这类工作(我使用Eclipse中的编辑器,但还有很多其他编辑器),那么这并不难。否则,就自己写POJO吧。我建议保持这样的POJO非常简单,可能根本没有方法

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

由于您没有服务的WSDL或WADL(这是一种相对常见的情况),因此您将不得不以艰难的方式完成这项工作

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

  • @XmlRootElement
    -这些元素命名将构成消息外部的元素,这些元素沿任意方向传递。去上课
  • @xmlement
    -将映射字段标记为消息的子元素
  • @xmldattribute
    -将映射字段标记为属性
  • @XmlType
    -将一个类标记为适合用作另一条消息的复合元素的类型
还有很多,但最好的办法是编写一些POJO并尝试使用它们:

@XmlRootElement
public class Example {
    @XmlAttribute
    public String pqr;
    @XmlElement
    public String abc;
    @XmlElement
    public List<String> def = new ArrayList<String>();
}
相反的方向是解组(当然是使用JAXB
解组器),并且非常类似


要使用JSON而不是XML,请使用抛弃库。(本质上,您只是在JSON和JAXB之间放置一个特殊的DOM树编写器/读取器。)

REST服务是否在WSDL或WADL中发布服务描述符?(有些有,有些没有…)它没有。如何为此类服务生成POJO?
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);