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

4.Web Service CXF处理JavaBean以及复合类型

2017-02-13 15:23 411 查看
今天这里来讲下CXF处理JavaBean以及复合类型,比如集合,这里实例是客户端传一个JavaBean,服务器端返回集合类型;

在原来的项目实例基础上



我们先创建一个包com.oyyp.entity在下面创建实体类User:

package com.oyyp.entity;
/**
* 用户实体类
* @author Administrator
*2017-2-13
*/
public class User {

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.oyyp.entity;
/**
* 角色实体类
* @author Administrator
*2017-2-13
*/
public class Role {

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;
}
}


然后HelloWorld接口中再加一个接口方法getRoleByUser,通过用户查找角色:

package com.oyyp.webservice;

import java.util.List;

import javax.jws.WebService;

import com.oyyp.entity.Role;
import com.oyyp.entity.User;

@WebService
public interface HelloWord {

public String say(String str);

public List<Role> getRoleByUser(User user);
}


然后在HelloWorldImpl实现接口HelloWorld写下新增的方法的具体实现,我们这里写死,模拟一下:

package com.oyyp.webservice.impl;

import com.oyyp.entity.Role;
import com.oyyp.entity.User;
import com.oyyp.webservice.HelloWorld;

import java.util.ArrayList;
import java.util.List;

import javax.jws.WebService;

@WebService
public class HelloWorldImpl implements HelloWorld{

public String say(String str) {
// TODO Auto-generated method stub
return "Hello:"+str;
}

public List<Role> getRoleByUser(User user) {
List<Role> roleList=new ArrayList<Role>();
// 模拟 直接写死
if(user!=null){
if(user.getUserName().equals("tom") && user.getPassWord().equals("123456")){
roleList.add(new Role(1,"技术总监"));
roleList.add(new Role(2,"架构师"));
}else if(user.getUserName().equals("jack") && user.getPassWord().equals("123456")){
roleList.add(new Role(3,"程序员"));
}
return roleList;
}else{
return null;
}

}
}


服务端其他地方不用动,然后运行起来。



下面我们来处理下客户端,和前面讲的一样。我们用wsdl2java工具重新生成代码,进入dos命令:



然后按下F5刷新一下WS_client01项目,这里我们可以看到,实体类,以及接口实现,代码都生成了。



我们改下WS_client01项目中Client类:

package com.oyyp.webservice;

import java.util.List;

public class Client {

public static void main(String[] args) {
HelloWorldService service=new HelloWorldService();
HelloWorld helloWorld=service.getHelloWorldPort();
//   System.out.println(helloWorld.say("Web Service 你大爷的"));
User user=new User();
user.setUserName(
a8c2
"jack");
user.setPassWord("123456");
List<Role> roles=helloWorld.getRoleByUser(user);
for (Role role : roles) {
System.out.println(role.getId()+"-"+role.getRoleName());
}
}
}


运行一下:

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