[英]Generating POJOs for RESTful web service
我們在SOAP服務中從WSDL / XSD生成POJO。 我們如何在使用RESTful Web服務時生成POJO?
由於您沒有服務的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);
反方向是解Unmarshaller
(當然是使用JAXB Unmarshaller
)並且非常相似。
要使用JSON而不是XML,請使用本博客文章中概述的Jettison庫。 (實際上,您只是在JSON和JAXB之間放置一個DOM樹的特殊編寫器/讀者。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.