Java rmi远程方法调用基本用法解析

作者:陌然浅笑 时间:2023-02-20 08:44:19 

本文主要介绍Java中的rmi的基本使用

1:项目架构

Java rmi远程方法调用基本用法解析

api:主要是接口的定义,url地址,端口号

rmiconsumer:rmi服务的调用者

rmiserver:rmi服务的提供者

2:pom.xnl

api的pom.xml


<artifactId>api</artifactId>
<groupId>com.api</groupId>
<version>1.0</version>
rmiconsumer和rmiserver的pom.xml
<dependency>
<groupId>com.api</groupId>
<artifactId>api</artifactId>
<version>1.0</version>
</dependency>

该功能主要是将api的引入到服务端和客户端

3:代码

api的代码


public interface RMIInterface extends Remote {
 String RMI_URL = "rmi://127.0.0.1:9080/RMIServer";
 int PORT = 9080;

Object sayHello(String name) throws RemoteException;
}

rmiserver的代码


public class RMIInterfaceImpl extends UnicastRemoteObject implements RMIInterface {
 public RMIInterfaceImpl() throws RemoteException {
 }

@Override
 public Object sayHello(String name) throws RemoteException {
   return "你好,你连接成功,姓名:"+name;
 }
}

public class RMIServer {
 public static void main(String[] args) {
   try {
     RMIInterface rmi = new RMIInterfaceImpl();
     //注册通讯端口
     LocateRegistry.createRegistry(RMIInterface.PORT);
     //注册通讯路径
     Naming.bind(RMIInterface.RMI_URL,rmi);
     System.out.println("rmi服务端启动成功");
   }catch (Exception e){
     e.printStackTrace();
   }

}
}

rmiconsumer


public class RMIConsumer {
 public static void main(String[] args) {
   //远程调用RMI
   RMIInterface rmiInterface =null;
   try{
     rmiInterface =(RMIInterface) Naming.lookup(RMIInterface.RMI_URL);
     Object ret = rmiInterface.sayHello("张先生");
     System.out.println("测试远程调用成功,返回结果:"+ret);
   }catch (Exception e){
     e.printStackTrace();
   }
 }
}

4:总结

接口必须继承 Remote

接口的实现类必须继承 UnicastRemoteObject

来源:https://www.cnblogs.com/orange-time/p/12290964.html

标签:Java,rmi,远程,方法,调用
0
投稿

猜你喜欢

  • Java虚拟机执行引擎知识总结

    2023-06-05 17:34:31
  • idea 如何查找类中的某个方法

    2022-03-17 17:17:42
  • 如何将写好的.py/.java程序变成.exe文件详解

    2022-04-06 09:22:14
  • Spring配置文件如何使用${username}

    2021-07-26 22:40:27
  • C#集合之并发集合的用法

    2023-12-24 09:30:21
  • Android Studio设置或修改Android SDK路径方法

    2023-11-07 17:22:10
  • Android如何动态调整应用字体大小详解

    2023-08-26 10:13:52
  • C#中常用的运算符总结

    2023-10-10 04:09:32
  • 一次排查@CacheEvict注解失效的经历及解决

    2023-11-13 12:07:23
  • C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)

    2023-09-18 01:40:57
  • Java编程泛型限定代码分享

    2023-11-09 17:46:32
  • Android实现支付宝支付密码输入界面

    2023-06-20 14:57:15
  • 将本地的jar包打到Maven的仓库中实例

    2022-08-29 13:38:28
  • Android入门之AlertDialog用法实例分析

    2023-12-16 02:27:02
  • Java实现读取项目中文件(.json或.properties)的方法详解

    2022-08-12 23:59:10
  • springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)

    2022-12-26 09:13:43
  • Android调用摄像头拍照开发教程

    2023-05-24 11:33:33
  • 详解Java线程池队列中的延迟队列DelayQueue

    2023-08-30 01:22:04
  • Android studio 自动换行和取消自动换行操作

    2023-08-09 12:16:16
  • Lombok 的@StandardException注解解析

    2022-09-16 23:37:19
  • asp之家 软件编程 m.aspxhome.com