rmi-Java RMI疑问(stub、classpath相关)

问题描述

Java RMI疑问(stub、classpath相关)
最近在看之前搞得RMI的东西,搞了好久还是有很多东西没明白,这里列出来希望大家能帮忙解答下==,也算是自己备忘

  1. 说jdk1.5之后RMI的stub是动态生成的,这个是利用动态代理吗? 那1.5之前的stub生成会不会类似cglib之类的了--
  2. 如果是动态生成的话,是否仍然需要在registry那边设置classpath?(自己测试,包名不同的registery和远程对象分别部署时好像还是会报ClassNotFound错误)
  3. RMI通信的时候,server端端口貌似可以固定,但是好像还会使用随机端口跟client通信(数据端口?) 这个端口有没有方法也固定住?

之后再看下spring的实现,之前用spring好像可以做到端口固定

谢谢~~

时间: 2024-12-27 12:18:01

rmi-Java RMI疑问(stub、classpath相关)的相关文章

java RMI原理详解

[本文转载自java RMI原理详解] 定义 RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法. 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中. Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口.它使客户机上运行的程序

Java——RMI

      之前分布式系统调用用的是比较老的EJB,当时还是作为服务调用方,去调用别的系统的服务.最近发现新公司里面,用的是RMI,查了下发现EJB的底层实现就是RMI,也算是熟悉了...  一,使用JDK 中的RMI实现服务发布和引用 服务端接口: /** * Created by LiuHuiChao on 2016/11/18. */ public interface UserInfoService extends Remote{ /** * 定义远程接口,必须继承Remote接口, *

Java RMI 介绍

一.Java RMI 概览 Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.所以,RMI相关对象必须运行在Java虚拟机中. 在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务.JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口.任何远程

Java RMI 简单示例

示例 RMI是Java平台实现远程调用的规范,下面是一个小例子,本机测试通过 一共有三个java类,远程接口,服务端程序,客户端程序 远程接口: import java.rmi.*; public interface HelloIn extends java.rmi.Remote{ String sayHello() throws RemoteException;} 服务端程序: import java.rmi.*;import java.net.*;import java.rmi.regist

Java RMI(远程方法调用) 实例与分析 (转)

目的: 通过本文,可以加深对Java RMI的理解,知道它的工作原理,怎么使用等. 也为了加深我自己的理解,故整理成文.不足之处,还望指出. 概念解释: RMI(RemoteMethodInvocation):远程方法调用,顾名思义,通过远程的方式调用非本地对象的方法并返回结果.使用远程调用通常解决本地计算瓶颈问题,例如分布式记算,最近很火的阿尔法狗人机大战,据说运算使用上千个CPU. JRMP(java remote method protocol):java远程方法协议,这是完成java到j

Java RMI原理与使用

Java RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法. Java RMI概念 在Java中,只要一个类继承了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务.JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口.任何远程对象都必须直接或间接实现此接口.只有在"远程接口"(扩

gc-通过Java RMI的定时GC触发,JVM垃圾回收就无法自动触发FULL GC了吗?

问题描述 通过Java RMI的定时GC触发,JVM垃圾回收就无法自动触发FULL GC了吗? Java RMI的定时GC触发机制,可通过:-XX:+DisableExplicitGC来禁止或通过 -Dsun.rmi.dgc.server.gcInterval=3600000来控制触发的时间. 那么问题来了堆栈内存满了,是否就不会自动触发FULL GC了. 目前系统几次宕机,看内存监控均为堆栈满了,但是没能触发FULL GC. 看应用服务启动配置中有Dsun.rmi.dgc.server.gcI

RMI异常,java.rmi.ConnectException: Connection refused to host

问题描述 String name = "Compute"; HelloWorldCompute engine = new HelloWorldEngine(); HelloWorldCompute stub = (HelloWorldCompute) UnicastRemoteObject.exportObject(engine, 8888); Registry registry = LocateRegistry.getRegistry(); registry.rebind(name,

十分钟学会Java RMI

RMI是Java平台实现远程调用的规范,下面是一个小例子,本机测试通过 一共有三个java类,远程接口,服务端程序,客户端程序 远程接口: import java.rmi.*; public interface HelloIn extends java.rmi.Remote{ String sayHello() throws RemoteException; } 服务端程序: /** * author by http://www.bt285.cn http://www.5a520.cn */ i