四、CXF WebService中传递复杂类型对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四、CXF WebService中传递复杂类型对象

前面介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。

1、首先看看服务器端的代码所需要的JavaBean对象

package com.hoo.entity;

import java.io.Serializable;

/**

* function:User 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_@

* @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")

org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"", local:"item")

package com.hoo.entity;

import java.util.HashMap;

import java.util.List;

/**

* function: 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_@

* @version 1.0

*/

public class Users {

private List users;

private User[] userArr;

private HashMap 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 er;

import ers;

/**

* function: 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_@

* @version 1.0

*/

@WebService

@SOAPBinding(style = Style.RPC)

@SuppressWarnings("deprecation")

public class ComplexUserService {

public User getUserByName(@WebParam(name = "name") String name) { User user = new User();

user.setId(new Date().getSeconds());

user.setName(name);

user.setAddress("china");

user.setEmail(name + "@");

return user;

}

public void setUser(User user) {

System.out.println("############Server setUser###########"); System.out.println("setUser:" + user);

}

public Users getUsers(int i) {

List users = new ArrayList();

for (int j = 0; j <= i; j++) {

User user = new User();

user.setId(new Date().getSeconds());

user.setName("jack#" + j);

user.setAddress("china");

user.setEmail("jack" + j + "@");

users.add(user);

}

Users u = new Users();

u.setUsers(users);

return u;

}

public void setUsers(Users users) {

System.out.println("############Server setUsers###########");

for (User u : users.getUsers()) {

System.out.println("setUsers:" + u);

相关文档
最新文档