簡體   English   中英

為RESTful Web服務生成POJO

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM