Java rmi远程方法调用基本用法解析
作者:陌然浅笑 时间:2023-02-20 08:44:19
本文主要介绍Java中的rmi的基本使用
1:项目架构
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,远程,方法,调用
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java虚拟机执行引擎知识总结
2023-06-05 17:34:31
idea 如何查找类中的某个方法
2022-03-17 17:17:42
![](https://img.aspxhome.com/file/2023/3/79813_0s.jpg)
如何将写好的.py/.java程序变成.exe文件详解
2022-04-06 09:22:14
![](https://img.aspxhome.com/file/2023/1/70161_0s.png)
Spring配置文件如何使用${username}
2021-07-26 22:40:27
C#集合之并发集合的用法
2023-12-24 09:30:21
![](https://img.aspxhome.com/file/2023/8/106498_0s.jpg)
Android Studio设置或修改Android SDK路径方法
2023-11-07 17:22:10
![](https://img.aspxhome.com/file/2023/0/122240_0s.png)
Android如何动态调整应用字体大小详解
2023-08-26 10:13:52
![](https://img.aspxhome.com/file/2023/5/120175_0s.gif)
C#中常用的运算符总结
2023-10-10 04:09:32
一次排查@CacheEvict注解失效的经历及解决
2023-11-13 12:07:23
![](https://img.aspxhome.com/file/2023/0/59200_0s.png)
C#仪器数据文件解析Excel文件的方法浅析(xls、xlsx)
2023-09-18 01:40:57
Java编程泛型限定代码分享
2023-11-09 17:46:32
Android实现支付宝支付密码输入界面
2023-06-20 14:57:15
![](https://img.aspxhome.com/file/2023/8/83508_0s.gif)
将本地的jar包打到Maven的仓库中实例
2022-08-29 13:38:28
Android入门之AlertDialog用法实例分析
2023-12-16 02:27:02
![](https://img.aspxhome.com/file/2023/3/111683_0s.jpg)
Java实现读取项目中文件(.json或.properties)的方法详解
2022-08-12 23:59:10
springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)
2022-12-26 09:13:43
![](https://img.aspxhome.com/file/2023/5/88175_0s.png)
Android调用摄像头拍照开发教程
2023-05-24 11:33:33
![](https://img.aspxhome.com/file/2023/3/137593_0s.png)
详解Java线程池队列中的延迟队列DelayQueue
2023-08-30 01:22:04
Android studio 自动换行和取消自动换行操作
2023-08-09 12:16:16
![](https://img.aspxhome.com/file/2023/8/128978_0s.jpg)
Lombok 的@StandardException注解解析
2022-09-16 23:37:19