我正在使用合同優先Web服務(wsimport
和jaxws-maven-plugin
)處理應用程序。在Java中使用Contract-First的Web服務週期
如何編寫WSDL/XSD文件以便能夠處理循環?例如參考department
參照employees
和employee
並參照department
(如在這篇文章中http://jaxb.java.net/guide/Mapping_cyclic_references_to_XML.html)。文章註釋@XmlTransient
註釋,但由於我使用契約優先,我無法以任何方式修改生成的類。
如果我不理會這些週期,我第一次運行web服務,我收到一個錯誤,如:
Caused by: com.sun.istack.SAXException2:
A cycle is detected in the object graph. This will cause infinitely deep XML:
[email protected] -> [email protected] -> [email protected]
感謝您的回覆,這是解決問題的一種方式,但它需要通信雙方的額外代碼(服務器必須打破引用,客戶端重新構建它)。 我試着看@ XmlID/@ XmlIDREF,它啓用循環引用,但它將對象轉換爲對象類,並需要在客戶端手動類型轉換。 – 2011-02-08 09:16:24