我已經成功實現了針對簡單WebService調用(queryparams和簡單對象)的Jersey,但是當我嘗試sync
商店或save
記錄時,球衣不瞭解rootProperty
作家。它不知道從哪裏開始,並且它不能從ExtJS發送的json記錄Consume
。不幸的是rootProperty
是ExtJS在將數據轉換爲JSON時必需的,所以我離不開它。我能明顯使用Consumes(MediaType.TEXT_PLAIN)
和改造的對象自己,但我試圖把新澤西州的自動對象編組等優勢使用Jersey rest web服務讀取ExtJS編寫器根屬性
什麼是用於.sync
存儲數據或.save
記錄一般的做法?
編輯:我不認爲問題是與我的對象的JSON。我店的代理配置如下:
proxy: {
type: 'ajax',
url: 'ext/AnnouncementHelper/myFunction',
headers: {'Content-Type': 'application/json;charset=utf-8'},
reader: {
type: 'json',
rootProperty: 'data',
messageProperty: 'processMessage'
},
writer: {
type: 'json',
rootProperty: 'data',
encode: true,
writeAllFields: true
}
這樣做的是創建具有下列參數的POST請求:
data={id: 1, description: 'status 1'}
我的模型配置如下:
public class AnnouncementStatus {
private int id;
private String description;
@JsonCreator
public AnnouncementStatus() {
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
我功能聲明是:
@POST
@Path("myFunction")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response myFunction(AnnouncementStatus status)
這使我在Java以下錯誤:
org.codehaus.jackson.JsonParseException:意外字符( 'd'(代碼100)):預測的有效值(數字,字符串,數組,對象, 「真」,「假」或「空」)
我猜傑克遜不喜歡,我的目標是開始與data=
但我不能避免這種情況,因爲它是強制性的有一個根屬性時使用商店和記錄。