关于RMI 实现步骤

1. 抽象出一个接口, 扩展Remote 接口(直接实现会有问题)

public interface ServerHelloI extends Remote{
public String sayHello()throws RemoteException ;
}

2. 实现抽象的接口,继承UnicastRemoteObject(这是用于帮助打包对象)

public class ServerHello extends UnicastRemoteObject implements ServerHelloI {

    /**

*/
private static final long serialVersionUID = 1L;


public ServerHello() throws RemoteException {
        super();
    }


@Override
public String sayHello() throws RemoteException{
return "hello world";
}
    
    
}

3. 实现类的属性都需要序列化

4. 启动服务端

public class Server {
public static void main(String args[])  
    {  
        try{ //简单地返回一个合适的注册表存根,该存根发送调用到本地端口为1099的服务器表,那时  
        LocateRegistry.createRegistry(1099); 
         Naming.bind("rmi://127.0.0.1:1099/sayhello",new ServerHello());   
            System.out.println("Print server is ready.");  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
    }  
}

5. 客户端调用


public class Client {
public static void main(String args[]) {
try{// 无需设置如下代码,否则报错  
//             System.setSecurityManager(new RMISecurityManager());  
ServerHelloI server=(ServerHelloI) Naming.lookup("rmi://127.0.0.1:1099/sayhello");  
             System.out.println(server.sayHello());  
        }  
     catch(Exception e){  
             e.printStackTrace();  
       }  
}
}


如果报拒接访问,或者类型转化问题,再或者安全问题,请认真检查步骤和代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值