Hessian入门(传递集合,对象)

来源:互联网 发布:dede淘宝客api采集 编辑:程序博客网 时间:2024/06/05 07:47

原文:http://blog.csdn.net/chenweitang123/article/details/6334024

Hessian入门(集合,对象)

                                                                                                                      By:wtang

1.    主要是讲述使用Hessian传递集合以及对象.

2.    传递的对象必须序列化

3.    相比起Webservice,Hessian无需配置xml   (XXX.aegis.xml) 实体Bean的xml文件

4.    简单 轻量 无需多余配置.

 

 

 

开发流程:

1.书写实体Bean[必须序列化]

 

 

 

 

[java] view plain copy
  1. package com.wtang.domain;  
  2.   
  3. import <a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java SE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.io.Serializable;  
  4.   
  5. public class User implements Serializable {  
  6.     private static final long serialVersionUID = 21287917233879L;  
  7.   
  8.     private String userName;  
  9.   
  10.     private String password;  
  11.   
  12.     public String getUserName() {  
  13.         return userName;  
  14.     }  
  15.   
  16.     public void setUserName(String userName) {  
  17.         this.userName = userName;  
  18.     }  
  19.   
  20.     public String getPassword() {  
  21.         return password;  
  22.     }  
  23.   
  24.     public void setPassword(String password) {  
  25.         this.password = password;  
  26.     }  
  27. }  

 

2.定义接口

[java] view plain copy
  1. package com.wtang.isay;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5. import com.wtang.domain.User;  
  6.   
  7. public interface Isay {  
  8.   
  9.     public String sayHello(List<User> list);  
  10.   
  11.     public String sayHi(Map<String, User> map);  
  12. }  
 

3.接口具体实现

[java] view plain copy
  1. package com.wtang.isay;  
  2.   
  3. import java.util.Iterator;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6. import com.wtang.domain.User;  
  7.   
  8. public class IsayImpl implements Isay {  
  9.   
  10.     public String sayHello(List<User> list) {  
  11.   
  12.         StringBuffer sb = new StringBuffer();  
  13.   
  14.         for (Iterator iterator = list.iterator(); iterator.hasNext();) {  
  15.             User user = (User) iterator.next();  
  16.             sb.append(user.getUserName());  
  17.             sb.append("==");  
  18.             sb.append(user.getPassword());  
  19.             sb.append("==");  
  20.         }  
  21.   
  22.         return sb.toString();  
  23.     }  
  24.   
  25.     public String sayHi(Map<String, User> map) {  
  26.   
  27.         StringBuffer sb = new StringBuffer();  
  28.   
  29.         for (String o : map.keySet()) {  
  30.             sb.append(map.get(o).getUserName());  
  31.             sb.append("==");  
  32.             sb.append(map.get(o).getPassword());  
  33.             sb.append("==");  
  34.         }  
  35.   
  36.         return sb.toString();  
  37.     }  
  38. }  

 

 

4.配置Web.xml

[java] view plain copy
  1. <servlet>  
  2.     <servlet-name>hi</servlet-name>  
  3.     <servletclass>com.caucho.hessian.server.HessianServlet</servlet-class>  
  4.     <init-param>  
  5.         <param-name>service-class</param-name>  
  6.         <param-value>com.wtang.isay.IsayImpl</param-value>  
  7.     </init-param>  
  8. </servlet>  
  9.   
  10. <servlet-mapping>  
  11.     <servlet-name>hi</servlet-name>  
  12.     <url-pattern>/hi</url-pattern>  
  13. </servlet-mapping>  

5.客户端调用

[java] view plain copy
  1. package com.wtang.test;  
  2.   
  3. import java<a href="http://lib.csdn.net/base/dotnet" class='replace_word' title=".NET知识库" target='_blank' style='color:#df3434; font-weight:bold;'>.NET</a>.MalformedURLException;  
  4. import java.util.ArrayList;  
  5. import java.util.HashMap;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8. import com.caucho.hessian.client.HessianProxyFactory;  
  9. import com.wtang.domain.User;  
  10. import com.wtang.isay.Isay;  
  11.   
  12. public class Test {  
  13.     public static void main(String[] args) throws MalformedURLException {  
  14.         String url = "http://localhost:8080/HessianCollection/hi";  
  15.   
  16.         HessianProxyFactory factory = new HessianProxyFactory();  
  17.   
  18.         Isay i = (Isay) factory.create(Isay.class, url);  
  19.   
  20.         String result1, result2 = "";  
  21.   
  22.         // List  
  23.         List<User> list = new ArrayList<User>();  
  24.         User user1 = new User();  
  25.         user1.setUserName("chenweitang");  
  26.         user1.setPassword("123");  
  27.   
  28.         User user2 = new User();  
  29.         user2.setUserName("hello");  
  30.         user2.setPassword("world");  
  31.   
  32.         list.add(user1);  
  33.         list.add(user2);  
  34.   
  35.         result1 = i.sayHello(list);  
  36.   
  37.         System.out.println("List结果:" + result1);  
  38.   
  39.         // Map  
  40.         Map<String, User> map = new HashMap<String, User>();  
  41.         map.put(user1.getUserName(), user1);  
  42.         map.put(user2.getUserName(), user2);  
  43.   
  44.         result2 = i.sayHi(map);  
  45.   
  46.         System.out.println("Map结果:" + result2);  
  47.     }  
  48. }  

结果:

List结果:chenweitang==123==hello==world==
Map结果:hello==world==chenweitang==123==