CXF-02: 使用CXF处理JavaBean式的复合类型和List集合类型

Cat.java:

 1 package com.war3.ws.domain;
 2 
 3 public class Cat {
 4 
 5     private Integer id;
 6     private String name;
 7     private String color;
 8     
 9     public Cat() {
10         super();
11     }
12     
13     public Cat(Integer id, String name, String color) {
14         super();
15         this.id = id;
16         this.name = name;
17         this.color = color;
18     }
19     
20     public Integer getId() {
21         return id;
22     }
23     public void setId(Integer id) {
24         this.id = id;
25     }
26     public String getName() {
27         return name;
28     }
29     public void setName(String name) {
30         this.name = name;
31     }
32     public String getColor() {
33         return color;
34     }
35     public void setColor(String color) {
36         this.color = color;
37     }
38     
39 }

User.java:

 1 package com.war3.ws.domain;
 2 
 3 public class User {
 4 
 5     private Integer id;
 6     private String name;
 7     private String pass;
 8     private String address;
 9     
10     public User() {
11         super();
12     }
13     
14     public User(Integer id, String name, String pass, String address) {
15         super();
16         this.id = id;
17         this.name = name;
18         this.pass = pass;
19         this.address = address;
20     }
21 
22     public Integer getId() {
23         return id;
24     }
25     public void setId(Integer id) {
26         this.id = id;
27     }
28     public String getName() {
29         return name;
30     }
31     public void setName(String name) {
32         this.name = name;
33     }
34     public String getPass() {
35         return pass;
36     }
37     public void setPass(String pass) {
38         this.pass = pass;
39     }
40     public String getAddress() {
41         return address;
42     }
43     public void setAddress(String address) {
44         this.address = address;
45     }
46     
47     @Override
48     public int hashCode() {
49         final int prime = 31;
50         int result = 1;
51         result = prime * result + ((name == null) ? 0 : name.hashCode());
52         result = prime * result + ((pass == null) ? 0 : pass.hashCode());
53         return result;
54     }
55     
56     @Override
57     public boolean equals(Object obj) {
58         if (this == obj)
59             return true;
60         if (obj == null)
61             return false;
62         if (getClass() != obj.getClass())
63             return false;
64         User other = (User) obj;
65         if (name == null) {
66             if (other.name != null)
67                 return false;
68         } else if (!name.equals(other.name))
69             return false;
70         if (pass == null) {
71             if (other.pass != null)
72                 return false;
73         } else if (!pass.equals(other.pass))
74             return false;
75         return true;
76     }
77     
78 }

UserService.java:

 1 package com.war3.service;
 2 
 3 import java.util.List;
 4 
 5 import com.war3.ws.domain.Cat;
 6 import com.war3.ws.domain.User;
 7 
 8 public interface UserService {
 9 
10     List<Cat> getCatsByUser(User user);
11 }

UserServiceImpl.java:

 1 package com.war3.service.impl;
 2 
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7 
 8 import com.war3.service.UserService;
 9 import com.war3.ws.domain.Cat;
10 import com.war3.ws.domain.User;
11 
12 public class UserServiceImpl implements UserService {
13 
14     static Map<User,List<Cat>> catDb = new HashMap<User,List<Cat>>();
15     
16     static{
17         List<Cat> catList1 = new ArrayList<Cat>();
18         catList1.add(new Cat(1,"加菲猫","橙色"));
19         catList1.add(new Cat(2,"机器猫","蓝色"));
20         catDb.put(new User(1,"孙悟空","1111","花果山"), catList1);
21         
22         List<Cat> catList2 = new ArrayList<Cat>();
23         catList2.add(new Cat(3,"熊猫","黑白色"));
24         catList2.add(new Cat(4,"kitty","白色"));
25         catDb.put(new User(2,"猪八戒","2222","高老庄"), catList2);
26     }
27     @Override
28     public List<Cat> getCatsByUser(User user) {
29         return catDb.get(user);
30     }
31 
32 }

HelloWorld.java:

 1 package com.war3.ws;
 2 
 3 import java.util.List;
 4 
 5 import javax.jws.WebService;
 6 
 7 import com.war3.ws.domain.Cat;
 8 import com.war3.ws.domain.User;
 9 
10 @WebService
11 public interface HelloWorld {
12 
13     List<Cat> getCatsByUser(User user);
14     String sayHi(String name);
15 }

HelloWorldWS.java:

 1 package com.war3.ws.impl;
 2 
 3 import java.util.List;
 4 
 5 import javax.jws.WebService;
 6 
 7 import com.war3.service.UserService;
 8 import com.war3.service.impl.UserServiceImpl;
 9 import com.war3.ws.HelloWorld;
10 import com.war3.ws.domain.Cat;
11 import com.war3.ws.domain.User;
12 
13 @WebService(endpointInterface="com.war3.ws.HelloWorld")
14 public class HelloWorldWS implements HelloWorld{
15 
16     @Override
17     public List<Cat> getCatsByUser(User user) {
18         UserService us = new UserServiceImpl();
19         return us.getCatsByUser(user);
20     }
21 
22     @Override
23     public String sayHi(String name) {
24         return "welcome to the google"+name;
25     }
26 
27 }

ServerMain.java:

 1 package com.war3.ws.server;
 2 
 3 import javax.xml.ws.Endpoint;
 4 
 5 import com.war3.ws.HelloWorld;
 6 import com.war3.ws.impl.HelloWorldWS;
 7 
 8 public class ServerMain {
 9 
10     public static void main(String[] args) {
11         HelloWorld hw = new HelloWorldWS();
12         Endpoint.publish("http://localhost:8080/hello", hw);
13         System.out.println("WebService暴露服务成功!");
14     }
15 }

运行主类,暴露服务成功!

我们写一个测试类ClientMain.java:

 1 package com.war3.ws.client;
 2 
 3 import java.util.List;
 4 
 5 import com.war3.ws.Cat;
 6 import com.war3.ws.HelloWorld;
 7 import com.war3.ws.User;
 8 import com.war3.ws.impl.HelloWorldWSService;
 9 
10 public class ClientMain {
11 
12     public static void main(String[] args) {
13         HelloWorldWSService factory = new HelloWorldWSService();
14         HelloWorld hw = factory.getHelloWorldWSPort();
15         System.out.println(hw.sayHi("tom"));
16         
17         User user = new User();
18         user.setName("孙悟空");
19         user.setPass("1111");
20         List<Cat> catList = hw.getCatsByUser(user);
21         for(Cat cat:catList){
22             System.out.println(cat.getName()+","+cat.getColor());
23         }
24     }
25 }

 

posted on 2015-11-29 02:16  confirmCname  阅读(275)  评论(0编辑  收藏  举报

导航