rmi调用一般过程:
接口:
package com.zhang.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
/**
* 实现Remote接口,定义的方法都需要抛出RemoteException
* <p />
*
* @author Administrator
*/
public interface TestRmiInterface extends Remote {
String concat(String a, String b) throws RemoteException;
}
实现类:
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
/**
* 继承UnicastRemoteObject类,实现TestRmiInterface接口
* <p />
*
* @author Administrator
*/
public class TestRmiImpl extends UnicastRemoteObject implements TestRmiInterface {
private static final long serialVersionUID = 7060916499195401961L;
/**
* 显式定义构造方法,需要抛出RemoteExcepiton
*
* @throws RemoteException
*/
protected TestRmiImpl() throws RemoteException {
super();
}
/**
* {@inheritDoc}
*/
@Override
public String concat(String a, String b) {
//System.out.println(a+b);
return a + b;
}
}
服务器端:
package com.zhang.rmi;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Server {
public Server(){
TestRmiInterface testRmi = null;
Registry registry = null;
try {
registry = LocateRegistry.createRegistry(1099);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
testRmi = new TestRmiImpl();
registry.rebind("rmi://localhost:1099/testServer", testRmi);
} catch (RemoteException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public static void main(String[] args) {
// if(System.getSecurityManager() == null){
// System.out.println("SecurityManager is null");
// System.setSecurityManager(new RMISecurityManager());
// }
new Server();
System.out.println("server ready");
}
}
客户端:
package com.zhang.rmi;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
public static void main(String[] args) {
try {
Registry registry = LocateRegistry.getRegistry(1099);
TestRmiInterface testRmi = (TestRmiInterface) registry.lookup("rmi://localhost:1099/testServer");
String test = testRmi.concat("hello", "rmi");
System.out.println(test);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NotBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
最简单 最有效而且是最易懂的rmi理解例子
Java的远程方法(RMI)例子,有兴趣 ,可以下载学学!EJB底层用的就是Java的RMI
远程服务的接口定义 远程服务接口的具体实现 桩(Stub)和框架... 一个RMI命名服务,它允许客户端去发现这个远程服务 类文件的提供者(一个HTTP或者FTP服务器) 一个需要这个远程服务的客户端程序
创建客户端RMI调用服务端的应用程序。 启动服务端,再启动客户端,测试是否调用成功。 如果客户端和服务端不在同一台电脑上,则需要对刚才定义的服务类采用rmic 编译一个客户端的框架类_stub并拷贝到客户端的类...
java rmi 完整的简单例子 包含详细的文档说明
Java RMI实例
java简单示例rmi java简单示例rmi
现在虽然我们很少用到RMI进行编程,但是做为Java一个最早的分布式解决方案,我们还是有了解的必要,从例子开始吧!
java rmi spring 使用实例,内涵服务端和客户端的源代码,测试可用。
Java RMI简单实例~~~~~~~~~~~
JAVARMI实例[文].pdf
Java编程rmi实例,给出远程方法调用技术在java方面的具体例子。
java rmi小例子源代码 ,运行Reg.java ,再执行Client客户端代码就能看效果。如果在不同jvm下执行,注意接口定义包路径客服端和服务端必须保持一致。 客服端包含文件有服务端接口的定义文件。
我的博客《Java中的RMI(远程方法调用)》的示例代码
rmi 简单例子 rmi 简单例子
java rmi 调用实例及详细说明,详细可参见博客:http://blog.csdn.net/fufengrui/article/details/9855865
这是一个java远程调用的例子,可运行。
JAVA分布式之RMI实例教程网络通信原理[收集].pdf
java rmi例子