Posted on 2008-08-05 20:09
Coolfiry 阅读(4932)
评论(1) 编辑 收藏 所属分类:
Java
在项目使用CXF的过程中,遇到了有关List作为传输参数的时候,如果WebService端没有明确给出List的泛型类型会报错。
例如
CXF的WebService端口接口的一个方法为为:
1 public boolean updateMessageStatus(List batchIds);
客户端的的调用为:
1 //预先初始化cxf对象cxfObj
2 List<String> list=new ArrayList<String>();
3 list.add("1");
4 cxfObj.updateMessageStatus(list);
在客户端进行调用WebService时会发生错误,错误为:unexpected element (uri:"", local:"arg0")等,据分析生成的wsdl,这是因为CXF在进行数据marshal时不知道要将要转换的类型。
解决办法是:在WebService端的接口必须用List的泛型类型参数,如:
1 public boolean updateMessageStatus(List<String> batchIds);
这样就完全解决问题了。