2012-08-09 92 views
1

當前我正在使用CXF框架開發webservices。這個web服務將通過調用我的DAO層來完成我的數據庫操作。我知道CXF默認使用JAXB進行數據綁定。 例如,如果我想創建一個新的人我有我的web服務如下。將xml載荷映射到不同的POJO對象

public Response createPerson(CreatePersonRequest request) 
{ 

// Call to hibernate DAO class 
personDao.create() 
} 

這裏CreatePersonRequest是我的DTO類(JAXB註釋),我打電話給我的DAO類之前,我想轉換我的DTO類對象對Hibernate實體對象。我想基於從web服務接收到的XML填充我的hibernate實體對象。但是我在這裏接收到的XML將適合CreatePersonRequest而不適用於我的Person實體對象。因爲我的XML根標記不會超過此值,所以這兩個類的屬性都是相同的。總之,我想爲相同的XML有效載荷填充兩種不同類型的POJO對象。無論如何,使用JAXB來實現這一點?請幫幫我。

+0

如果我理解你的問題,它應該只是工作。你看到什麼問題?你能提供更多的細節嗎? – 2012-08-13 01:38:42

+0

謝謝你的回覆。我有兩個類像PersonRequest和Person。所以這兩個類的根標籤名稱是不同的。我收到的xml有效載荷是,所以我可以使用JAXB而不是Person請求填充PersonRequest對象,不僅如此,有時候我還會收到類似的xml,那時我也需要填充Person對象。 – Dilip 2012-08-13 05:27:31

回答

0

我可以使用XStream使用XStream別名功能來更改Payload的Root標記,然後我可以將其轉換爲我的實體對象。