RMI 调用

本文详细介绍了如何使用 Java RMI 实现远程对象调用,包括 HelloWorld 接口定义、实现类 HelloWorldImpl、服务器端 HelloWorldServer 和客户端 HelloWorldClient 的实现方式,以及远程对象的注册与查找。
摘要由CSDN通过智能技术生成

HelloWorld接口

public interface HelloWorld extends Remote {
String sayHi(String name)throws RemoteException;
}

HelloWorldImpl.java

public class HelloWorldImpl extends UnicastRemoteObject implements HelloWorld{

private static final long serialVersionUID = 1L;
public HelloWorldImpl()throws RemoteException{
  super();
}

@Override
public String sayHi(String name) {
  return "Hi:"+name;
}

HelloWorldServer.java

public class HelloWorldServer {

  public static void main(String args[]) throws Exception{
    HelloWorld c = new HelloWorldImpl();

    LocateRegistry.createRegistry(8180);

    //把远程对象注册到RMI注册服务器上,并命名为RHello
    //绑定的URL标准格式为:rmi://host:port/name(其中协议名可以省略,下面两种写法都是正确的)
    Naming.bind("rmi://172.16.148.215:8180/HelloWorld",c);
    System.out.println("Server running");
  }
}

HelloWorldClient.java

//Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,

//能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。

public class HelloWorldClient {

    public static void main(String args[]){

        try {

            //在RMI服务注册表中查找名称为RHello的对象,并调用其上的方法

            HelloWorld rhello =(HelloWorld) Naming.lookup("rmi://172.16.148.215:8180/HelloWorld");

            System.out.println(rhello);

            System.out.println(rhello.sayHi("张三"));

        } catch (NotBoundException e) {

            e.printStackTrace();

        } catch (MalformedURLException e) {

            e.printStackTrace();

        } catch (RemoteException e) {

            e.printStackTrace(); 

        }

    }

}

}

 

转载于:https://www.cnblogs.com/fengyu9/p/3595658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值