4.Web Service CXF处理JavaBean以及复合类型
2017-02-13 15:23
411 查看
今天这里来讲下CXF处理JavaBean以及复合类型,比如集合,这里实例是客户端传一个JavaBean,服务器端返回集合类型;
在原来的项目实例基础上
我们先创建一个包com.oyyp.entity在下面创建实体类User:
再创建一个Role实体类:
然后HelloWorld接口中再加一个接口方法getRoleByUser,通过用户查找角色:
然后在HelloWorldImpl实现接口HelloWorld写下新增的方法的具体实现,我们这里写死,模拟一下:
服务端其他地方不用动,然后运行起来。
下面我们来处理下客户端,和前面讲的一样。我们用wsdl2java工具重新生成代码,进入dos命令:
然后按下F5刷新一下WS_client01项目,这里我们可以看到,实体类,以及接口实现,代码都生成了。
我们改下WS_client01项目中Client类:
运行一下:
在原来的项目实例基础上
我们先创建一个包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()); } } }
运行一下:
相关文章推荐
- 【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据
- CXF处理JavaBean以及复合类型学习笔记三
- CXF处理JavaBean以及复合类型
- 【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据
- 【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据
- CXF处理JavaBean以及复合类型
- CXF-03:使用CXF处理 JavaBean 式的复合类型和 List 集合类型的形参和返回值
- 4.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端业务逻辑层实现类
- 5.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端domain
- Map等CXF无法自动转换的复合数据类型的形参和返回值的处理
- 6.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端发布
- 6.Web Service CXF处理一些Map等复杂类型
- 7.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:转换器1
- 8.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:转换器2
- 使用CXF处理JavaBean式的复合类型和List集合类型的形参和返回值
- 9.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端发布成功
- 10.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:客户端执行wsdl2java
- Web Service学习之六:CXF解决无法处理的数据类型
- CXF学习04---处理MAP等CXF无法自动转换的复合数据类型的形参和返回值
- 处理Map、非javabean式的复合类等CXF无法自动转化的类型 (3)