Java rmi远程方法调用基本用法解析
作者:陌然浅笑 发布时间:2023-02-20 08:44:19
标签:Java,rmi,远程,方法,调用
本文主要介绍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


猜你喜欢
- 情况一:问题idea项目突然无法运行,提示找不到某个类。查看了编译输出目录out,发现没有class文件。尝试解决尝试删除out、重新导入项
- 背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重
- 前面聊的最近在调试项目的亮屏速度,我们希望在按下power键后到亮屏这个时间能达到500MS以内,在Rockchip 3399和3288上面
- 图片象对:经过理处过的jpg格式的位图(头像照片) 算
- 本文主要解决以下几个问题:我们都知道Android的刷新频率是60帧/秒,这是不是意味着每隔16ms就会调用一次onDraw方法?如果界面不
- 理解hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。
- 1 起因在实际业务开发中, 我们经常会遇到需要临时创建一个数组的情况, 今天我们就来讲一下Java中ArrayList初始化的方法2 解决方
- 前言每次update Maven Project 的时候,看着进度条寸步难行,心里憋得十分难受,明显阻碍我学习的热情。 maven仓库默认在
- 显示当前运行java代码的运行时的各种参数。不带显String操作。package systeminfo;import java.util.
- 实现方式和继承方式有什么区别呢?*区别:*继承Thread:线程代码存放在Thread子类run方法中*实现Runnable:线程代码存放在
- 本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法。分享给大家供大家参考,具体如下:有
- 随着手机性能的提高,以及iOS和Android两个平台的普及,更多的App都会选择两个平台的App都进行开发,在有些时候,为了更加快速的开发
- 记录一下微信第三方实现登录的方法。还是比较简单。一、必要的准备工作1.首先需要注册并被审核通过的微信开放平台帐号,然后创建一个移动应用,也需
- 日常开发中,判断邮箱是少不了的,这个我以**C#**为例,来写一个判断方法,正则表达式是通用的,CV就可以首先引入正则需要使用的命名空间//
- 背景何为延迟队列?顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。场景一:在
- 一、简介Mybatis-Plus(简称MP)是一个 Mybatis 的一个增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发
- 本文实例为大家分享了Android实现自动转圈效果展示的具体代码,供大家参考,具体内容如下在values文件夹下创建attrs.xml<
- 剪贴板是Windows操作系统中最常用的功能之一,它用来从一个应用程序向另一个应用程序传递数据,可以是文本,图象,甚至是程序对象。不过剪贴板
- 微信开放平台 : https://open.weixin.qq.com/一、准备工作 : 1. Android Studio环境下:在bui
- 本文实例讲述了DevExpress设置饼状图的Lable位置的方法。分享给大家供大家参考。具体实现方法如下:关键代码如下:/// <s