我們使用Jersey,Jackson和Spring服務(@service)註釋來公開一些基於REST的Web服務。請求和響應數據以JSON格式進行交換。Jersey Jackson和Spring Service
下面是一個服務請求對象的內容:
public class ServiceRequest{
private RequestHeader requestHeader;
private List<BaseEntity> requestData;
}
所有特定實體將從BaseEntity類擴展。例如:
public class User extends BaseEntity{
private String userName;
}
對於所有的業務運營,我們通過傳遞請求數據對象的列表只接受ServiceRequest對象。現在,當我們試圖調用REST從這些客戶端的操作,這些都與
userName is not found as part of BaseEntity.
這是因爲在轉換,新澤西州/傑克遜試圖與指定對象的屬性自動檢測輸入的字段名稱失敗。
我想知道有沒有辦法,我可以用智能的方式處理這個問題。我們沒有選擇更改服務的簽名。非常感謝你對此的幫助。
是你的BaseEntity是一個JavaBean嗎?(即你有一個getter/setter的用戶名) – 2013-03-14 09:31:29
BaseEntity是一個JavaBean。但用戶(擁有用戶名)擴展了BaseEntity。 BaseEntity只包含id,由創建日期,更新日期,更新日期(這對所有實體通用)。 – Manjunath 2013-03-14 09:48:09
下面的鏈接有我的問題的答案。 http://stackoverflow.com/questions/11798394/polymorphism-in-jackson-annotations-jsontypeinfo-usage – Manjunath 2013-03-16 12:55:17