2011-10-24 77 views
1

如何使用Eclipse/AXIS2 POJO服務返回任意XML文檔?如何使用Eclipse/AXIS2 POJO服務返回任意XML文檔

有關完整的背景細節,看到這個問題: Java Web Service returns string with &gt; and &lt; instead of > and <

部署Web服務,我有一個定義我的服務的接口的類的動態Web項目。我關心的方法返回一個String類型。要創建和部署Web服務,我右鍵單擊該類(包含在動態Web項目中)並選擇創建Web服務,在此我指出我想要一個「自下而上的Java Bean Web服務」,並且服務實現來自在我的動態web項目中的類。這啓動我的服務並創建一個WSDL,其中定義了我的端口和端點。

wsdl的類型部分是根據將成爲服務的代碼自動生成的。 intrest的函數有一個org.w3c.DOM.Document,它保存我想要返回的XML。此文檔被轉換爲字符串並返回,因爲Document對象不是序列化的並且沒有公共構造函數。是否還有另一種類型可用作我的函數的返回類型,該類型將通過服務調用保存XML結構?

回答

2

我不認爲這可以通過您使用的技術和流程來完成。

理想情況下,你可以只返回一個org.w3c.dom.Document(或在該框架內可比的DOM對象),它會提供「任何」類型的WSDL但不幸的是,它似乎並沒有這樣的工作。 AXIS2是強類型的,需要數據綁定技術(例如ADB,XmlBeans,JiBX,可能是JAXB)來請求和響應數據。它似乎支持<xsd:any><xsd:anyType>元素通過AXIOM services,但這是一種不同的實現風格比您正在使用。

看到這個有趣的討論"Unknown type can not serialize" Exception。此外,這裏是一個相關的SO問題,AXiS2 - Problem in returning the String value. <and> are getting converted to &lt; and &gt;

+0

您提供的AXIS2鏈接解釋了我可以對我的情況做得非常好,謝謝。我現在正在修改我們的服務調用結構以允許正確的返回響應。 – Sababado