Java—RMI:远程方法调用,基于TCP协议

本文介绍了Java RMI(远程方法调用)的基本概念和执行流程,详细讲解了如何通过RMI实现在不同Java应用间的远程调用。文中提到RMI基于TCP协议,并通过Registry作为注册中心,客户端通过lookup()方法获取远程对象。同时,文章还涵盖了RMI的关键API,如Remote接口、UnicastRemoteObject类等,并提供了简单的服务器和客户端代码示例。
摘要由CSDN通过智能技术生成

Java—RMI:远程方法调用,基于TCP协议

RMI简介:

​ 远程方法调用,是JDK1.2推出的功能,它可以 实现Java应用中可以像调用本地方法一样调用另一个服务器中Java应用(JVM)中的内容。

​ RMI是Java语言的远程调用,无法实现跨语言。

执行流程:

在这里插入图片描述

​ Registry(注册表,注册中心,远程过程的定位,而不是调用。协议式的远程访问,rmi协议请求方式不在是post或get了,而是接口别名,可以随意起名。但是要保证这个接口是唯一的。同一个IP、同一个端口唯一。)是放置所有服务器对象的命名空间。每次服务端创建一个对象时,它都会使用bind()或rebind()方法注册该对象。这些是使用称为绑定名称的唯一名称注册的。

​ 要调用远程对象,客户端需要该对象的应用。即通过服务端绑定的名称从注册表中获取对象(lookup()方法)。

API介绍:

​ Remote:java.rmi.Remote 定义了此接口为远程调用接口。如果接口被外部调用,选哟继承此接口。

​ RemoteException:java.rmi.RemoteException 继承了Remote接口的接口中,如果方法是允许被远程调用的,需要抛出异常

​ UnicastRemoteObject:java.rmi.server.UnicastRemoetObject 此类实现了Remote接口和Serializable接口,自定义接口实现类除了实现自定义接口还需要继承此类。

​ LocateRegistry:java.rmi.registry.LocateRegistry 可以通过LocateRegistry在本机上创建Registry,通过特定的端口就可以访问这个Registry

​ Naming:java.rmi.Naming Naming定义了发布内容访问RMI名称,也是通过Naming获取指定的远程方法。

​ 具体上我们是怎么用RMI开发的呢,首先我们先写一个Server(服务器),在写一个Client(控制端),这两个都是用RMI技术进行的开发。

下面是我们的代码操作的部分:

创建一个项目:

rmi_rpc

在这里插入图片描述

下面我们在创建一个服务器项目

rmi_rpc_server

在这里插入图片描述

不用写任何的依赖,只要有接口JDK就行,运行的话就要需要一个标准,接口我的服务器和客户端都要用,所以我们最好就是把这个标准独立出去。

创建接口类型的标准

在这里插入图片描述

里面无需定义其它东西只需要写一个接口即可。

package com.bjsxt.rmi.api;

import java.rmi.Remote;

//定义一个远程服务器接口,RMI强制要求,必须是Remote接口的实现,标记接口,里面没有任何东西
public interface FirstInterface  extends Remote {
   
    //RMI强制要求,所有的远程服务方法,必须抛出异常RuntimeException
    /*
    服务器实现它,客户端基于它动态代理
     */
    String first(String name) throws RuntimeException;
}

服务器的实现;

1、在服务器的pom.xml文件中导入接口项目的依赖

<dependencies
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值