/*
* Created on 27/12/2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package service;
import java.util.Hashtable;
import java.util.LinkedList;
/**
* @author VSayajin
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public interface IUserService {
public abstract User findUser(String nombre);
public abstract boolean addUser(User u);
public abstract User[] getUsers();
public abstract Hashtable getUsersHash();
public abstract boolean addUsers(User[] users);
public abstract LinkedList reference();
public abstract double division(double a, double b);
}
/*
* Created on 07/12/2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package service;
import java.io.Serializable;
/**
* @author VSayajin
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class User implements Serializable{
public String name = "";
public String lastName = "";
private int code = 0;
public User(){}
public static User newUser(String name,String lastName,int code){
User u = new User();
u.name = name;
u.lastName = lastName;
u.code = code;
return u;
}
/**
* @return
*/
public int getCode() {
return code;
}
/**
* @param i
*/
public void setCode(int i) {
code = i;
}
@Override
public String toString() {
return "User [code=" + code + ", lastName=" + lastName + ", name="
+ name + "]";
}
}
package service;
import java.util.Hashtable;
import java.util.LinkedList;
import com.caucho.hessian.server.HessianServlet;
/*
* Created on 07/12/2004
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
/**
* @author VSayajin
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class UserService extends HessianServlet implements IUserService{
private Hashtable users;
/**
*
*/
public UserService() {
super();
users = new Hashtable();
users.put("hpotter",User.newUser("Harry","Potter",321));
users.put("ymalmsteem",User.newUser("Yngwie","Malmsteen",555));
users.put("mgomez",User.newUser("Manolo","xxxx你是猪",123));
}
public User findUser(String nombre){
System.out.println("findUser - name:"+nombre);
if(users.containsKey(nombre))
return (User)users.get(nombre);
return null;
}
public boolean addUser(User u){
System.out.println("addUser - "+u.toString());
return true;
}
public User[] getUsers(){
System.out.println("getUsers - ");
Object[] c = users.values().toArray();
User[] users = new User[c.length];
System.arraycopy(c,0,users,0,c.length);
return users;
}
public Hashtable getUsersHash(){
System.out.println("getUsersHash - ");
return users;
}
public boolean addUsers(User[] users){
System.out.println("user list received");
for(int i =0;i<users.length;i++){
System.out.println("number - "+i+" "+users[i].toString());
}
return true;
}
public LinkedList reference(){
LinkedList list = new LinkedList();
list.add("first element");
list.add(list);
return list;
}
public double division(double a, double b){
return a/b;
}
public static void main(String args[]){
UserService ser = new UserService();
User[] users = ser.getUsers();
for(int i=0;i<users.length;i++){
System.out.println(users[i]);
}
}
}
客户端:
package client;
import java.util.LinkedList;
import service.IUserService;
import service.User;
import com.caucho.hessian.client.HessianProxyFactory;
//http://hessian.caucho.com/
public class Test {
public static void main(String[] args) throws Exception {
HessianProxyFactory factory = new HessianProxyFactory();
String url = "http://10.0.0.101:9090/hessian/service/userService";
IUserService service = (IUserService) factory.create(
IUserService.class, url);
User[] users=service.getUsers();
for (User user : users) {
System.out.println(user);
}
System.out.println(service.getUsersHash());
System.out.println(service.division(15.5, 2));
System.out.println(service.findUser("mgomez"));
LinkedList list=service.reference();
for (Object object : list) {
System.out.println(object);
}
}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<!--
- web.xml configuration file for userService example.
-->
<web-app>
<servlet>
<servlet-name>user</servlet-name>
<servlet-class>service.UserService</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/service/userService</url-pattern>
</servlet-mapping>
</web-app>
http://sourceforge.net/projects/hessianphp/files/hessian%20java%20examples/