2012-06-25 34 views
0

我正在開發一個JERSEY RESTful Web服務,它具有接受對象參數的函數。這就是所謂的「同步」,看起來像這樣:將XML發送至JERSEY Web服務時出錯

@XmlRootElement 
public class Synchronize { 

private List<PHQ9> phq9OutOfSync; 
private List<ExtraQuestions> extraQuestionsOutOfSync; 
private List<Suicide> suicideOutOfSync; 
private List<Brugha> brughaOutOfSync; 
private int hola; 

public Synchronize() { 

    phq9OutOfSync = new ArrayList<PHQ9>(); 
    extraQuestionsOutOfSync = new ArrayList<ExtraQuestions>(); 
    suicideOutOfSync = new ArrayList<Suicide>(); 
    brughaOutOfSync = new ArrayList<Brugha>(); 
} 
} 

的問題是我不能夠發送XML這個類的序列化的Web服務。我發送一個帶有所有屬性的xml,但它並沒有反序列化它......我不知道是否是因爲列表出現了一些問題。我甚至嘗試發送只有int屬性,如:

<synchronize><hola>1</hola></synchronize> 

並且不起作用...發生了什麼事情?

任何提示?

編輯:我看到,我不知道如何可以引用一個類中的屬性。我試着製作一個web服務,它接受一個帶有phq9對象的列表,並且它工作的很好,但是如果我把這個列表放在其他類中,那麼它不知道如何反序列化。爲什麼會這樣?

EDIT2:

@XmlRootElement 
public class PHQ9 { 

@XmlElement 
private int id; 
@XmlElement 
private int patientId; 
@XmlElement 
private int answer1; 
@XmlElement 
private int answer2; 
@XmlElement 
private int answer3; 
@XmlElement 
private int answer4; 
@XmlElement 
private int answer5; 
@XmlElement 
private int answer6; 
@XmlElement 
private int answer7; 
@XmlElement 
private int answer8; 
@XmlElement 
private int answer9; 
@XmlElement 
private int answer10; 
@XmlElement 
private int total; 
@XmlElement 
private int week; 
@XmlElement 
private String phq9Date; 
@XmlElement 
private String timeExported; 
@XmlElement 
private String dateExported; 
@XmlElement 
private int exported; 

public PHQ9() { 

    phq9Date = timeExported = dateExported = "";   
} 
} 

回答

0

[編輯]

在問候名單,採取如果需要如何包裝清單,看看JAXB: How to marshal objects in lists?

您可以使用XmlAccessorType(http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/XmlAccessorType.html)和XmlElement(http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/XmlElement.html)限制要序列化哪些成員。

您可能試圖序列化/反序列化不支持的類,導致它失敗。你是否得到任何例外,或只是在默默地失敗?您是否嘗試過查看正在發送/接收的原始數據?

+0

你能解釋一下嗎? – Frion3L

+0

我的歉意,我想我誤解了你的問題。讓我編輯一下我的回覆。 –

+0

我將XMLElement添加到類Synchronize的屬性中,現在看起來好多了。現在屬性「霍拉」是很好的反序列化,但其他的不是。它反序列化了數組的大小,但是對象的屬性不在......它們具有初始值。任何提示? (我將XMlElement添加到數組中的對象的屬性中,但它不起作用)。謝謝 – Frion3L