我们在SOAP服务中从WSDL / XSD生成POJO。我们如何在使用RESTful Web服务时生成POJO?
答案 0 :(得分:1)
由于您没有服务的WSDL或WADL(相对常见的情况),您将不得不这么做。
一种可能的方式如果服务采用XML 是写和XSD描述它采取和返回的文档。如果您以前编写过XSD并且使用了一个旨在帮助这种事情的编辑器(我在Eclipse中使用的那个,但还有很多其他的东西),这并不难。否则,只需自己编写POJO。我建议保持这样的POJO 非常简单,可能根本没有方法,只有公共字段和注释。要注意的主要注释是:
@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树的特殊编写器/读者。)