我想訪問一個JAX-RS服務(球衣實現),它返回一個XML格式的僱員java.util.list。Jersey JAX-RS客戶端XML到java.util.List反序列化
的服務方法的簽名是這樣的:
@GET
@Path("/getEmployeeListXML")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.APPLICATION_XML)
public List<EmployeeXML> getEmployeeListXML(@QueryParam("id") String id){
//Some code which returns a List<EmployeeXML>
}
返回的XML的格式是這樣的:
<employeeXMLs>
<employeeXML>
<empId>1</empId>
<empName>John</empName>
<empAge>35</empAge>
<empSex>Male</empSex>
</employeeXML>
<employeeXML>
<empId>2</empId>
<empName>Lisa</empName>
<empAge>23</empAge>
<empSex>Female</empSex>
</employeeXML>
</employeeXMLs>
對於從我的球衣客戶端訪問這個,我使用這個代碼:
List<EmployeeXML> empListXML = (List<EmployeeXML>)service.path("rest").path("GetService").path("getEmployeeListXML").accept(MediaType.APPLICATION_XML).get(EmployeeXML.class);
這是不正確的,因爲返回類型應該是一個清單,但在get方法,對很抱歉,我正在嘗試檢索單個對象。我不知道如何從這裏的客戶端:(
我得到這個例外列表:
unexpected element (uri:"", local:"employeeXMLs"). Expected elements are <{}employeeListXML>,<{}employeeXML>
請幫助我,使這項工作
感謝,
感謝,否則我得到一個編譯錯誤'類型WebResource.Builder中的方法get(類)不適用於參數(Type)'。 –
WhoAmI
2013-02-27 14:15:47
@WhoAmI - 是的,'getType()'不需要,我更新了我的答案。 – Perception 2013-02-27 14:36:24