原文:http://blog.csdn.net/chenweitang123/article/details/6334024
Hessian入门(集合,对象)
1. 主要是讲述使用Hessian传递集合以及对象.
2. 传递的对象必须序列化
3. 相比起Webservice,Hessian无需配置xml (XXX.aegis.xml) 实体Bean的xml文件
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==