2011-11-05 43 views
0

趕上一個HashMap的REST手柄的文章中,我希望抓住這個格式的XML(HashMap中)在我的崗位處理如何使用Apache新澤西

<entries> 
    <entry> 
    <id>1</id> 
    <labels> 
     <label>label1</label> 
     <label>label2</label> 
     ... 
    </labels> 
    <entry> 
    ... 
<entries> 

我使用Apache澤西尋找希望我的POST處理程序像這樣

@POST 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public void createEntries(@MagicAnnotation HashMap<id, List<label>> entryMap){ 
    } 

我能得到的最接近的是什麼?

我打開一個更好的代表HashMap到XML。我只是不想手動解析xml,並且想要捕獲等效的JSON。 我不確定是否可以使用某些JAXBElement而不是球衣註釋。

回答

0

你不應該以這種方式訪問​​POST機構。 您必須定義幾個讓Jersey分析XML響應的類。

你的代碼如下:

@POST 
public Response post(Entries entries) { 
    Storage.put(entries); 
    return Response.ok().build(); 
} 

爲了使這項工作條目必須是JAXB兼容:

@XmlRootElement 
public class Entries { 
    @XmlElement List<Entry> entries; 
} 

@XmlType 
public class Entry { 
    @XmlAttribute String id; 
    @XmlElement Labels labels; 
} 

@XmlType 
public class Labels { 
    @XmlElement List<String> label; 
} 

啊,和澤西島是不是Apache的,但是從Sun