您的位置:首页 > 编程语言 > Java开发

CXF处理JavaBean以及复合类型学习笔记三

2016-11-20 18:00 399 查看
客户端传一个JavaBean,服务器端返回集合类型

第一步:在服务端创建实体类

代码如下:

package com.xiaowen.model;

import java.io.Serializable;
/**
* 用户实体类
* @author xiaowen
* 2016年11月20日
*/
public class User implements Serializable{

private static final long serialVersionUID = 1L;
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}


Role角色实体类

package com.xiaowen.model;

import java.io.Serializable;

/**
* 角色实体类
* @author xiaowen
* 2016年11月20日
*/
public class Role implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
private String roleName;

public Role() {
super();
}
public Role(Integer id, String roleName) {
super();
this.id = id;
this.roleName = roleName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
}


第二步:在服务端写个查询用户所有的角色接口

代码如下:

package com.xiaowen;
import java.util.List;
import javax.jws.WebService;
import com.xiaowen.model.Role;
import com.xiaowen.model.User;
@WebService
public interface HelloWorld {

public String say(String str);

/**
* 查询用户的全部角色
* @param user
* @return
*/
public List<Role> findAllRole(User user);
}


接口的实现类

package com.xiaowen.impl;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebService;
import com.xiaowen.HelloWorld;
import com.xiaowen.model.Role;
import com.xiaowen.model.User;
@WebService
public class HelloWorldService implements HelloWorld{

public String say(String str) {
return "hello "+str;
}

public List<Role> findAllRole(User user) {
List<Role> list=new ArrayList<Role>();
if(user !=null){
if(user.getUsername().equals("xiaowen")&&user.getPassword().equals("123")){
list.add(new Role(1, "技术总监"));
list.add(new Role(2, "产品经理"));
}else if(user.getUsername().equals("tom")&&user.getPassword().equals("123")){
list.add(new Role(3, "架构师"));
}else{
list.add(new Role(4, "UI设计师"));
}
return list;
}else{
return null;
}
}
}


服务端的项目结构



第三步:在客户端使用wsdl2java工具生成客户端代码

生成客户端项目结构



注意:在使用wsdl2java工具生成客户端代码之前,必须先启动服务端,否则会报错。

第四步:写客户端的测试类

代码如下:

package com.xiaowen.test;
import java.util.List;
import com.xiaowen.HelloWorld;
import com.xiaowen.HelloWorldService;
import com.xiaowen.Role;
import com.xiaowen.User;

public class Client {

public static void main(String[] args) {
HelloWorldService service=new HelloWorldService();
HelloWorld helloWorld=service.getHelloWorldPort();
User user=new User();
user.setUsername("xiaowen");
user.setPassword("123");
List<Role> role=helloWorld.findAllRole(user);
for(Role roles:role){
System.out.println(roles.getId()+","+roles.getRoleName());
}
}
}


程序运行效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cxf