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

客户端传一个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());
        }
    }
}

程序运行效果图
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值