hessian rpc使用实例

/*
 * 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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值