coolfiry

认认真真做人,兢兢业业做事!
posts - 36, comments - 13, trackbacks - 0, articles - 0

2008年8月5日

在项目使用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);

这样就完全解决问题了。

posted @ 2008-08-05 20:09 Coolfiry 阅读(1002) | 评论 (0)编辑 收藏