初识RMI

Docker基础教程(五十七)基本操作之删除镜像的docker rmi命令:无情分手大师:Docker RMI命令的删除艺术与求生指南 Docker rmi命令看似简单,实则是容器世界的"无情分手大师"。本文深度解析docker rmi的删除哲学,从基础单删到强制分手,从清理悬空镜像到解决依赖冲突。附完整实战示例,教你如何优雅删除镜像而不误伤"无辜",避免存储空间爆炸的惨剧。256字掌握镜像删除的终极奥义,让容器世界整洁如新! 阅读详情

       远程方法调用(Remote Method Invocation,RMI)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。

一个正常工作的RMI系统由下面几个部分组成:·

     .远程服务的接口定义

     ·远程服务接口的具体实现

     ·桩(Stub)和框架(Skeleton)文件

     ·一个运行远程服务的服务器

     ·一个RMI命名服务,它允许客户端去发现这个远程服务

     ·类文件的提供者(一个HTTP或者FTP服务器)

     ·一个需要这个远程服务的客户端程序

要完成以上步骤需要有以下几个步骤:

      1、生成一个远程接口 
      2、实现远程对象(服务器端程序) 
      3、生成占位程序和骨干网(服务器端程序) 
      4、编写服务器程序 
      5、编写客户程序 
      6、注册远程对象 
      7、启动远程对象

1. 创建远程接口及声明远程方法(TimerServiceInterface.java)

package com.weiythi.service;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ITimeService extends Remote{
	public long getTime() throws RemoteException;
}

2. 实现远程接口及远程方法(继承UnicastRemoteObject)TimerService.java

package com.weiythi.service;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class TimerService extends UnicastRemoteObject implements ITimeService{
	private static final long serialVersionUID = 1L;
	/**  
	* 必须定义构造方法,即使是默认构造方法,也必须把它明确地写出来,因为它必须抛出出RemoteException异常  
	*/  
	public TimerService() throws RemoteException{
		
	}
	/**
	 * 接口方法的实现
	 */
	@Override
	public long getTime() throws RemoteException {
		return System.currentTimeMillis();
	}
}



3. 启动RMI注册服务,并注册远程对象

   方法一,打开一个DOS窗口,使用rmic命令

          rmic com.weiythi.service.TimerService    

          启动RMI注册服务,指定端口为1099 (1099为默认端口)   

         start rmiregistry

         注册远程对象(StartTimerServer.java)

package com.weiythi.service;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;

public class StartTimerServer {
	public static void main(String[] args){
		try {
			TimerService timerservice=new TimerService();
			//把TimerService注册到RMI注册服务器上,命名为b1   
			Naming.bind("b1", timerservice);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (AlreadyBoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

  方法二:

package com.weiythi.service;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

public class StartTimerServer {
	public static void main(String[] args){
		try {
			//启动RMI注册服务
	        //也可以通过命令 start rmigesitry启动   
	        //这里用这种方式避免了再打开一个DOS窗口   
	        //而且用命令rmiregistry启动注册服务还必须事先用RMIC生成一个stub类为它所用   
	        LocateRegistry.createRegistry(1099);   
			TimerService timerservice=new TimerService();
			//把TimerService注册到RMI注册服务器上,命名为b1   
			Naming.bind("b1", timerservice);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (AlreadyBoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

4. 客户端查找远程对象,并调用远程方法(GetTimerService.java)

package com.weiythi.client;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import com.weiythi.service.ITimeService;

public class GetTimerService {
	public static void main(String[] args){
		try {
			ITimeService time=(ITimeService) Naming.lookup("rmi://localhost/b1");
			System.out.println("the time is:"+time.getTime());
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NotBoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}




无线网卡选购指南:哪些型号支持Kali Linux的监听模式?附免驱动网卡推荐 本文详细解析了如何在Kali Linux下选购支持监听模式的无线网卡。核心在于选择兼容的芯片组,如Atheros AR9271和Ralink RT3070等经典型号,并提供了免驱动网卡推荐与实战配置指南,帮助安全研究人员和爱好者快速搭建无线测试环境。 阅读详情

相关推荐

【ENVI初学】查看影像空间分辨率及重采样

例如,如果线段长度为900米,对应的像素数量为30个,那么影像的空间分辨率为30米。通过计算长度与像素数量的比值,即可得到影像的空间分辨率。,在弹出的对话框中,输入重采样后输出文件的xy分辨率大小。在测量结果窗口中,可以看到该线段的长度以及角度。在影像上点击并拖动鼠标,绘制一条直线段。工具,选择要重采样的影像后点击ok。,避免了插值过程中光谱信息的改变。:最近邻插值法通过选择原始影像中。在ENVI中打开影像后右键选择。指示了每个像素的地理跨度(聚合为一个新像素,通常通过。方法一:查看影像的元数据。

weixin_41619112的博客 5571

Study RMI《一、初识RMI》

RMI(Remote Method Invocation)即远程方法调用。在Java RMI中,远程服务器实现具体的Java方法并提供接口,客户端本地仅需根据接口类的定义,提供相应的参数即可调用远程方法,其中对象是通过序列化方式进行编码传输的。

傻大专栏 307

ZYNQ双核通信实战:手把手教你用OpenAMP搭建Linux+FreeRTOS开发环境(2018.3版)

本文详细介绍了如何在ZYNQ平台上使用OpenAMP框架实现双核通信,构建Linux与FreeRTOS协同开发环境。从开发环境配置、系统组件编译到OpenAMP框架应用,手把手指导开发者完成ZYNQ双核通信系统的搭建与调试,为异构计算开发提供实用解决方案。

weixin_33737134的博客 476

初识Java RMI框架

一、什么RMIRMI即(Rmote Method Invoke)远程方法调用。换句话说客户对象Client可以调用远程Server上的方法。客户端并不是直接调用远程服务上的方法,而是通过客户辅助对象与远程服务通信。客户辅助对象会联系服务器,传送相应的调用信息,等待服务器的返回。在服务器端,存在一个服务器辅助对象,该服务器辅助对象从客户端辅助对象中接收请求(通过Socket连接),将请求交由真正的服务

worm0527的博客 764

NC65实现Restful接口开发及调试

NC65实现Restful接口开发及调试

linzhongshu的专栏 2145

在WebView中对第三方H5页面的文本密码框添加自定义随机键盘

前言: 首先介绍一下这个需求的背景,由于公司是涉及到金融行业的需要与银行对接资金存管。出于保密性这里不直接列出公司名字和银行名字。从2018年国家对金融行业大整改以来,为了能够顺利通过备案,我们也跟着政府的脚步一步一步走向合规。 好了,大致就是因为要通过备案,必须把这个需求实现,否则将不会通过。 需求内容就是,当客户端有关资金交易的时候,会通过加密数据以及秘钥的方式把第三方银行的页面(充值、...

比较喜欢、笑的博客专栏 1586

java rmi 开源_Java RMI那点事儿:初识HelloWorld

Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。大名鼎鼎的EJB都是建立在rmi基础之上的,现在还有一些开源的远程调用组件...

weixin_33206646的博客 161

手把手教你用Ollama & AnythingLLM搭建AI知识库,无需编程,跟着做就行!

本地运行大模型耗资源,需要选择较小的模型作为基础模型。在终端中运行时可能会出现 CUDA 错误,表示显存不足,导致提供的端口失效。中文支持不够完善。\3. 文中提到的技术软件工具有:Ollama、Chatbox、Open WebUI、向量数据库、嵌入模型、本地模型 Gemma、AnythingLLM。

2401_86435672的博客 1万+

JavaSE--RMI初识

转自:http://blog.youkuaiyun.com/guyuealian/article/details/51992182 一、Java RMI机制:  远程方法调用RMI(Remote Method Invocation),是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同...

weixin_30600197的博客 231

【PLC】三菱plc控件安装 component Movedata had the following error ... Error Number:-119

Windows 10 专业版/企业版本版本号:22H2操作系统内部版本:19045.3448。

少莫千华 8002

《网络安全自学教程》- MySQL脱库原理和步骤

MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段

wangyuxiang946的博客 1万+

初识Java RMI远程调用

Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。   Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。 大名鼎鼎的EJB都是建立在rmi基础之上的,现在还有一些...

w84264423的专栏 150

YOLOv13结合Sobel边缘检测算子,实现EIEM(Edge Information Enhancement Module,边缘信息增强模块),强化空间特征提取

EIEM模块通过巧妙地结合Sobel边缘检测算子和现代卷积网络架构,实现了显式边缘信息增强的创新设计。这种方法不仅提高了网络对边缘特征的敏感性,还保持了良好的计算效率和模块化特性。 从技术实现角度看,EIEM展示了如何将经典计算机视觉算法无缝集成到深度学习框架中,为构建更强大、更可解释的视觉模型提供了新的思路。随着对边缘信息重要性认识的不断深入,以及对网络可解释性需求的增长,EIEM这样的显式特征增强模块将在未来的计算机视觉研究中发挥越来越重要的作用。

FJN110的博客 906

初识RMI基本原理

RMI分为客户端和服务器端,和socket类似。 客户端: package it.york.rmi.client; import it.york.rmi.stub.UserManagerInterface; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; pu

qq_32080243的博客 268

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

7. 初识 RMI 通信协议

 1.19                                 RMI  协议       基于RMI的一次完整的远程通信过程的原理:      1、客户端发起请求,请求转交至RMI客户端的stub类;    2、stub类将请求的接口、方法、参数等信息进行序列化;    3、基于socket将序列化后的流传输至服务器端;    4、服务器端接收到流后转发至相应的skelto...

java 空间 688

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

初识:rmi __完整的example

interface: package rmi; import java.rmi.Remote;import java.rmi.RemoteException; public interface PerfectTimeI extends Remote { public abstract String getHelloWorld(String name) throws RemoteExcept...

saybody 120

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

初识RPC中的RMI以及简单的代码实现

RPC和RMI RPC的全称为Remote Procedure Call,即远程过程调用。 RMI的全称为Remote Method Invocation,即原程方法调用。 RPC客户器和RPC服务器可以运行在不同的java虚拟机中。RPC客户端只需要引入一个接口,而这个接口的实现以及调用时所需要的数据都在RPC服务器中。在RPC服务器在客户端调用之前就将客户端可能用到的所有接口regist(注册...

weixin_43333714的博客 288

Java RMI那点事儿:初识HelloWorld

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34067102的博客 111

java rmi 安全_Java安全初探-RMI篇

Java RMI初识Java RMI 定义Java RMI(Java Remote Method Invocation),即Java远程方法调用。是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。 Java RMI 使用 JRMP(Java Remote Message Protocol,Java远程消息交换协议)实现,使得客户端运行的程序可以调用远程服务器上的对象。是实现RPC的...

weixin_39600885的博客 430

【菜鸟教程】Dubbo基础入门上——初识RPC框架

基础概念 Apache Dubbo是一款高性能、轻量级的Java RPC框架,前身是阿里的开源Java RPC框架,可以和spring无缝集成。 Dubbo提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡、服务自动注册和发现。 RPC全称为remote procedure call,即远程过程调用。例如两台服务器A和B,A服务器部署一个应用,B服务器上部署一个应用,A服务器上的应用想...

qq_41112238的博客 1973

初识RPC

RPC:Remote Procedure Call Protocol(远程过程调用协议) 在分布式系统中,不同的应用或者服务部署在不同的服务器上,不同的服务器之间相互调用不在同一内存空间,也是不同进程之间的调用,为了解决此类问题,才有了RPC框架。那么RPC框架主要解决了哪些问题?往下看: 1、首先解决的是通讯的问题,客户端与服务端建立连接,可以是按需连接,也可以是长连接,建立连接后...

banfa3755的博客 115

【J2EE】——初识十三规范

在生活中无论使用什么物件都会有一套使用规范,而JavaEE就是基于java的技术的一系列标准规范,核心是一组技术规范与指南,包含各类组件,服务架构和技术层次,都共同的标准以及规范,使得Java架构在不同平台有非常好的兼容性。 1、JDBC(Java Data Base Conn...

chouxian0781的博客 179
上一篇: 关于设计模式的几个有趣比喻
下一篇: 初识RMI
weiythi
博客等级 码龄16年 23粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值