(四、CXFWebService中传递复杂类型对象.docx
文本预览下载声明
四、CXF WebService中传递复杂类型对象前面介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。 1、 首先看看服务器端的代码所需要的JavaBean对象 package com.hoo.entity; import java.io.Serializable; /** * bfunction:/bUser Entity * @author hoojo * @createDate Dec 16, 2010 10:20:02 PM * @file User.java * @package com.hoo.entity * @project AxisWebService * @blog /IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class User implements Serializable { private static final long serialVersionUID = 677484458789332877L; private int id; private String name; private String email; private String address; //getter、setter @Override public String toString() { return this.id + # + + # + this.email + # + this.address; }}下面的是集合传递Users,CXF直接传递集合对象会出现异常,用一个对象包装下就Ok了,不知道是什么原因。异常信息如下:DefaultValidationEventHandler: [ERROR]: unexpected element(uri:, local:item)erceptor.Fault: Unmarshalling Error: unexpected element (uri:, local:item)package com.hoo.entity; import java.util.HashMap;import java.util.List; /** * bfunction:/b Users Entity * @author hoojo * @createDate 2011-3-18 上午09:27:31 * @file Users.java * @package com.hoo.entity * @project CXFWebService * @blog /IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class Users { private ListUser users; private User[] userArr; private HashMapString, User maps; //getter、setter方法}2、 下面看看复杂对象传递的服务器端代码 package com.hoo.service; import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import javax.jws.WebParam;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;import com.hoo.entity.User;import com.hoo.entity.Users; /** * bfunction:/b WebService传递复杂对象,如JavaBean、Array、List、Map等 * @author hoojo * @createDate 2011-3-18 上午08:22:55 * @file ComplexUserService.java * @package com.hoo.service * @project CXFWebService * @blog /IBM_hoojo * @email hoojo_@126.com * @version 1.0 */@WebService@SOAPBinding(style = Style.RPC)@SuppressWarnings(deprecation)public class ComplexUserService { pub
显示全部