2011-11-08 127 views
2

JAXB繼承相關的問題:JAXB解組發出

  1. 我創建具有作爲參數的超web服務。
  2. 雖然調用客戶端通過該子類爲被髮送到服務器的實際參數
  3. SOAP消息的web服務包含的xsi:type =「NS:子類」

的問題是: 如何將傳遞的參數解組爲超類,但將參數的運行時類型保存爲子類?

我用google搜索了類似的問題在stackoverflow但建議的解決方案不適合我。

回答

1

對於此用例,您必須確保JAXBContext知道所有子類型。你可以通過它們創建的JAXBContext時做到這一點:

JAXBContext jc = JAXBContext.newInstance(Square.class, Circle.class); 

或者使用@XmlSeeAlso註釋的超​​類,使所有的子類都帶來了自動:

@XmlSeeAlso({Square.class, Circle.class) 
public class Shape { 
} 

JAXBContext jc = JAXBContext.newInstance(Shape.class); 

瞭解更多信息