美文网首页
RMI远程调用

RMI远程调用

作者: 离别刀 | 来源:发表于2018-05-20 00:46 被阅读0次

温故而知新可以为师矣

1.远程接口

package com.example.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;


public interface IService extends Remote {
    String sayHello() throws RemoteException;
    String sayHello(String name) throws RemoteException;
    HelloImpl.User getUser() throws RemoteException;
}

2.远程接口实现类

package com.example.rmi;

import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;


public class HelloImpl extends UnicastRemoteObject implements IService {

    public HelloImpl() throws RemoteException  {
    }

    @Override public String sayHello() {
        return "hello bruce.";
    }

    @Override public String sayHello(String name) {
        return name;
    }

    @Override public User getUser() throws RemoteException {
        return new User("bruce",30);
    }

    public static class User implements Serializable{
        public String name;
        public int age;

        public User(String name, int i) {
            this.name= name;
            this.age= i;
        }
        public String toString(){
            return this.name+":"+this.age;
        }
    }
}

3.注册远程服务接口

  package com.example.rmi;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

public class Server {
    public static void main(String[] args) throws RemoteException, AlreadyBoundException, MalformedURLException {
        IService service= new HelloImpl();
        LocateRegistry.createRegistry(8888);
        Naming.bind("rmi://localhost:8888/r_hello",service);
    }
}

4.远程客户端调用

package com.example.rmi;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

public class Client {
    public static void main(String[] args) throws RemoteException, NotBoundException, MalformedURLException {
        IService iService= (IService) Naming.lookup("rmi://localhost:8888/r_hello");
        System.out.println(iService.sayHello());
        System.out.println(iService.sayHello("成功啦"));
        HelloImpl.User user= iService.getUser();
        System.out.println((user));
    }
}

相关文章

  • spring05-RMI---G05

    spring05-RMI 一. 远程方法调用 RMI Java RMI 指的是远程方法调用 (Remote Met...

  • Java RMI服务搭建

    什么是RMI? RMI:远程方法调用(Remote Method Invocation)。 如何建立RMI服务? ...

  • 分布式架构基础:Java RMI详解

    RMI简介 ​ Java RMI,即 远程方法调用(Remote Method Invocation),...

  • 远程部署的RMI

    RMI Java的远程程序调用(Remote Method Invocation,RMI)技术 对方法的直接调用,...

  • 关于RPC

    1.RMI RMI(Remote Method Invocation,远程方法调用),RMI使用Java语言接口定...

  • JAVA RMI深度结论

    JAVA RMI是什么? Java RMI 指的是远程方法调用 (Remote Method Invocation...

  • Java RMI之HelloWorld篇

    Java RMI之HelloWorld篇 Java RMI 指的是远程方法调用 (Remote Method In...

  • RMI远程调用

    温故而知新可以为师矣 1.远程接口 2.远程接口实现类 3.注册远程服务接口 4.远程客户端调用

  • 【程序员笔记】RMI使用笔记

    本文章共分为三部分 RMI简介 RMI原理 RMI使用 RMI实战 下面详细介绍 一 RMI简介 远程方法调用(R...

  • Spring整合RMI

    经常使用Java的一定知道RMI,当需要远程调用服务的是否,Java内嵌的RMI是非常有用的。但是创建调用RMI的...

网友评论

      本文标题:RMI远程调用

      本文链接:https://www.haomeiwen.com/subject/zekzdftx.html