`
songsong
  • 浏览: 11330 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

初次使用RMI

阅读更多
使用RMI远程调用,可以减少客户端与服务端对数据的转化过程
直接使用对象存放数据,但同时引了了些复杂问题
对RMI远程调用应该使用动态代理模式,而不是单纯的直接调用接口
还在对bean的管理问题,是否能与spring很好的接合?

Rem.java
/*
 * Created 2005-1-8
 * (c); songsong  zoday@hotmail.com
 */
package com.zoday.beans;
import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * @author songsong
 */
public interface Rem extends Remote {
	
	public String getMessage(); throws RemoteException;

}



RemClient.java
/*
 * Created 2005-1-8
 * (c); songsong  zoday@hotmail.com
 */
package com.zoday.client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import com.zoday.beans.*;

/**
 * @author songsong
 */
public class RemClient {

	public static void main(String[] args); {
		try {
			String host = "192.168.0.251";
			Rem remObject=(Rem);Naming.lookup("rmi://" + host + "/Rem");;
			System.out.println(remObject.getMessage(););;
		} catch (MalformedURLException e); {
			e.printStackTrace();;
		} catch (RemoteException e); {
			e.printStackTrace();;
		} catch (NotBoundException e); {
			e.printStackTrace();;
		}
	}
}


RemImpl.java
/*
 * Created 2005-1-8
 * (c); songsong  zoday@hotmail.com
 */
package com.zoday.server;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import com.zoday.beans.*;

/**
 * @author songsong
 */
public class RemImpl extends UnicastRemoteObject implements Rem {

	public RemImpl(); throws RemoteException {

	}

	public String getMessage(); throws RemoteException {
		return ("hello songsong");;
	}

}


RemServer.java
/*
 * Created 2005-1-8
 * (c); songsong  zoday@hotmail.com
 */
package com.zoday.server;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;


/**
 * @author songsong
 */
public class RemServer {

	public static void main(String[] args); {
		System.out.println("start");;
		try {
			RemImpl localObject = new RemImpl();;
			Naming.rebind("//127.0.0.1/Rem", localObject);;
		} catch (RemoteException e); {
			e.printStackTrace();;
		} catch (MalformedURLException e); {
			e.printStackTrace();;
		}
		System.out.println("RMI start success");;
	}
}


使用rmic 生成stub 程序和 skeleton
客户端只需要用到RemClient.java和Rem.java

http://forum.iteye.com/viewtopic.php?t=3832&postdays=0&postorder=asc&start=0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics