Posted on 2008-08-05 20:09
Coolfiry 閱讀(4957)
評論(1) 編輯 收藏 所屬分類:
Java
在項(xiàng)目使用CXF的過程中,遇到了有關(guān)List作為傳輸參數(shù)的時候,如果WebService端沒有明確給出List的泛型類型會報(bào)錯。
例如
CXF的WebService端口接口的一個方法為為:
1 public boolean updateMessageStatus(List batchIds);
客戶端的的調(diào)用為:
1 //預(yù)先初始化cxf對象cxfObj
2 List<String> list=new ArrayList<String>();
3 list.add("1");
4 cxfObj.updateMessageStatus(list);
在客戶端進(jìn)行調(diào)用WebService時會發(fā)生錯誤,錯誤為:unexpected element (uri:"", local:"arg0")等,據(jù)分析生成的wsdl,這是因?yàn)镃XF在進(jìn)行數(shù)據(jù)marshal時不知道要將要轉(zhuǎn)換的類型。
解決辦法是:在WebService端的接口必須用List的泛型類型參數(shù),如:
1 public boolean updateMessageStatus(List<String> batchIds);
這樣就完全解決問題了。