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

    技术2022-05-19  29

    Hessian入门(集合,对象)

                                                                                                                          By:wtang

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

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

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

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

     

     

     

    开发流程:

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

     

     

     

     package com.wtang.domain; import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = 21287917233879L; private String userName; private String password; 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; } }

     

    2.定义接口

    package com.wtang.isay; import java.util.List; import java.util.Map; import com.wtang.domain.User; public interface Isay { public String sayHello(List<User> list); public String sayHi(Map<String, User> map); } 

    3.接口具体实现

    package com.wtang.isay; import java.util.Iterator; import java.util.List; import java.util.Map; import com.wtang.domain.User; public class IsayImpl implements Isay { public String sayHello(List<User> list) { StringBuffer sb = new StringBuffer(); for (Iterator iterator = list.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); sb.append(user.getUserName()); sb.append("=="); sb.append(user.getPassword()); sb.append("=="); } return sb.toString(); } public String sayHi(Map<String, User> map) { StringBuffer sb = new StringBuffer(); for (String o : map.keySet()) { sb.append(map.get(o).getUserName()); sb.append("=="); sb.append(map.get(o).getPassword()); sb.append("=="); } return sb.toString(); } }

     

     

    4.配置Web.xml

    <servlet> <servlet-name>hi</servlet-name> <servletclass>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>service-class</param-name> <param-value>com.wtang.isay.IsayImpl</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>hi</servlet-name> <url-pattern>/hi</url-pattern> </servlet-mapping>

    5.客户端调用

    package com.wtang.test; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.caucho.hessian.client.HessianProxyFactory; import com.wtang.domain.User; import com.wtang.isay.Isay; public class Test { public static void main(String[] args) throws MalformedURLException { String url = "http://localhost:8080/HessianCollection/hi"; HessianProxyFactory factory = new HessianProxyFactory(); Isay i = (Isay) factory.create(Isay.class, url); String result1, result2 = ""; // List List<User> list = new ArrayList<User>(); User user1 = new User(); user1.setUserName("chenweitang"); user1.setPassword("123"); User user2 = new User(); user2.setUserName("hello"); user2.setPassword("world"); list.add(user1); list.add(user2); result1 = i.sayHello(list); System.out.println("List结果:" + result1); // Map Map<String, User> map = new HashMap<String, User>(); map.put(user1.getUserName(), user1); map.put(user2.getUserName(), user2); result2 = i.sayHi(map); System.out.println("Map结果:" + result2); } }

    结果:

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

     


    最新回复(0)