Java:RMI远程调用
首先服务器端定义服务接口和实现服务,然后服务器端利用RMI协议将服务发布到一个端口上。等待客户端调用。
//定义服务接口,服务接口必须继承java.rmi.Remote,服务方法必须抛出java.rmi.RemoteException.
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface IRemoteService extends Remote {public String sayHello(String name) throws RemoteException ;
}
//提供服务实现类,服务实现类继承了java.rmi.server.UnicastRemoteObject,而其构造方法抛出异常,所以服务实现类必须显示给出构造方法并抛出异常.
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class RemoteServiceImpl extends UnicastRemoteObject implements IRemoteService {private static final long serialVersionUID = -1817498005094186816L;protected RemoteServiceImpl() throws RemoteException { }public String sayHello(String name) throws RemoteException {return "Hello " + name + "!";}
}
//发布服务。也就是将服务实现类注册到RMI服务注册表中。
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;public class RemotePublish {public static void main(String[] args) throws Exception {LocateRegistry.createRegistry(8888); // 创建RMI服务注册表IRemoteService rs = new RemoteServiceImpl();Naming.bind("rmi://localhost:8888/rservice", rs); // 将服务实现类的实例发布到指定端口并命名为rservice,等待远程调用}
}
客户端通过RMI协议对发布好的服务器端口进行调用。
import java.rmi.Naming;public class ClientTest {public static void main(String[] args) throws Exception {IRemoteService rs = (IRemoteService) Naming.lookup("rmi://localhost:8888/rservice"); // 从远程获取名称为rservice的服务实现类String say = rs.sayHello("world");System.out.println(say);}
}
转载于:https://www.cnblogs.com/xuejianbest/p/10285303.html
Java:RMI远程调用相关推荐
- webservice java接口远程调用
webservice 例如:java接口远程调用 文章目录 webservice 一.使用步骤 1引入Maven依赖 2.读入数据 总结 一.使用步骤 1引入Maven依赖 <!-- axis ...
- java socket 远程调用_SpringBoot使用Netty实现远程调用的示例
前言 众所周知我们在进行网络连接的时候,建立套接字连接是一个非常消耗性能的事情,特别是在分布式的情况下,用线程池去保持多个客户端连接,是一种非常消耗线程的行为.那么我们该通过什么技术去解决上述的问题呢 ...
- java socket 远程调用_使用Socket反射Java流操作进行方法的远程调用(模拟RPC远程调用)...
写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客 ...
- 【Java】远程调用、线程池手写一个简单服务器
" 关键字:远程调用.序列化.反序列化.反射.动态代理.客户端.服务端.线程池 > 思考题:带着这几个问题可以先思考,然后看完文章再去理解,也可以在评论区讨论喔~ 反射和动态代理关系和 ...
- java rpc远程调用_浅谈rpc(远程过程调用)
信息来源:邪恶八进制信息安全团队 RPC协议2:这个协议是一个够年头的协议 本文介绍用于ONC RPC协议规范.此协议使用XDR语言进行描述,并文不打算描述具体的使用细节而只介绍RPC协议本身. ON ...
- java远程代码注入_Java RMI远程反序列化任意类及远程代码执行解析(CVE-2017-3241 )...
原标题:Java RMI远程反序列化任意类及远程代码执行解析(CVE-2017-3241 ) 本打算慢慢写出来的,但前几天发现国外有研究员发了一篇关于这个CVE的文章,他和我找到的地方很相似.然而不知 ...
- 《Spring技术内幕》学习笔记19——Spring RMI实现远程调用
1.Spring除了使用基于HTTP协议的远程调用方案,还为开发者提供了基于RMI机制的远程调用方法,RMI远程调用网络通信实现是基于TCP/IP协议完成的,而不是通过HTTP协议. 在Spring ...
- java rmi 原理和使用浅析
目录 定义 RMI远程调用步骤 JAVA RMI简单示例 定义 RMI: 远程方法调用(Remote Method Invocation),它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远 ...
- 一文告诉你 Java RMI 和 RPC 的区别!
RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务. 一次RPC调用的过程大概有10步: 1.执行客户 ...
最新文章
- CVPR2021 | 基于transformer的视频实例分割网络VisTR
- Ubuntu 压缩解压汇总(自己常用+持续更新)
- spark 写tidb_tidb使用坑记录
- mysql视图子查询_mysql创建视图不能包涵子查询的解决办法。View's SELECT contains a subquery in the FROM clause...
- router vue 动态改变url_vue动态路由
- centos安装python3.5和pip
- 不用点击_华为手机里隐藏着一个扫描仪,以后扫描文件再也不用去打印店了
- ibm服务器更换主板怎么恢复系统,记号一次更换IBM X3650M4主板后RAID无法启动的解决...
- 201521123050 《Java程序设计》第13周学习总结
- EasyUI的增删查改(后台ASP.NET)
- python爬取动态网页_Python实现爬取网页中动态加载的数据
- 高等数学-用等价无穷小求极限题集
- 2016 linux发行版排行_2018年10大最漂亮的 Linux 发行版
- 无线连接网络找不到计算机组,Win10电脑找不到自家Wifi无线网络解决方法 可能是无线信道问题...
- 腾讯云COS云存储入门(一)
- 嵌入式系统开发笔记7:CJ/T-188 冷热量表协议解析1
- QtXlsx详细配置
- Apache ECharts数据可视化(连接数据库)
- vue 使用百度 API 实现图像识别
- (-ent -ant -ment)recipe and recipient