`
xm_king
  • 浏览: 395359 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
Group-logo
Spring技术内幕读书笔...
浏览量:15658
社区版块
存档分类
最新评论

JNDI和Java RMI远程调用(二)

    博客分类:
  • JAVA
阅读更多

利用 JNDI 定位资源

JNDI 提供了一套标准的接口来定位资源 ( 用户、网络、机器、对象和服务等 ) ,比如可以利用 JNDI 在局域网上定位一台打印机,也可以用 JNDI 来定位数据库服务或一个远程 Java 对象。 JNDI Java EE 中使用十分广泛;包括 EJB RMI-IIOP JDBC JMS 等。这些技术都需要命名和目录服务的支持。

命名和给人取名字道理是一样的,名字是一个指向实际客体的引用,名字方便了我们指称物体,比如给一个打印机取名为“ PrinterA ”,就不需要描述它为“五楼转角右边数过来的第二个打印机”。给一个资源命名的过程叫做名字的绑定。命名绑定之后,一系列的资源就有一系列的名字,名字属于命名空间,比如所有的本市的电话号码都在号码薄上,我们就可以在这个空间里寻找所要的资源。

给所有的资源命名之后,我们可以想象成所有人的电话号码都输入了号码薄,接下来利用这个号码薄就可以查找具体某人的联系方式。通过号码薄查找的服务就是目录服务。所以,总体来说, JNDI 提供了以下两种功能:

将名字绑定到资源上。

通过名字查找资源。

JDNI 由两部分组成:客户端 API 和服务提供接口 SPI(Service Provider Interface).

客户端 API 为开发者提供了操作命名和目录服务的统一接口,程序员可以利用这些 API ,在各种服务协议之上,对资源进行命名,或在目录中查找资源等。客户端 API 是与服务的协议无关的,而这个协议的具体实现由 SPI 组成。

JDNI SPI JNDI 的实现框架,对各个命名和目录服务协议进行支持。各个目录协议可以通过 SPI 将其插入到 JDNI 中。

JNDI 给一个字资源命名,并通过这个名字查找资源,那么资源的命名有什么规则呢? JNDI 中的名字可以分成两种:原子名和组合名。组合名是由原子名组成的,比如在 A 下的打印机 Printer1 就被表示成了“ A\Printer 1 其中 A\Printer 1 组合名它是 A ”和“ Printer 1 两个原子组成通过组合名可以找到经过绑定之后资源

命名服务提供了一种为对象命名的机制,这样就可以无需知道对象位置的情况下获取和使用对象。只要给对象在命名服务器上注册过,且命名服务器的地址和该对象在命名服务器上注册的 JNDI 名已知。就可以找到该对象,获得其引用,从而运用它提供的服务。

利用 JNDI 可以寻找命名服务器上注册过的所有对象。

JNDI 架构提供了一个标准的、与命名系统无关的 API ,这个 API 构建在特定于命名系统的驱动程序之上。这一层帮助把应用程序和实际的数据源隔离开来,因此无论应用程序是访问任何目录服务,这都没有关系。换句话说, JNDI 与任何特定的目录服务实现无关,可以使用任何目录,只要拥有相应的服务提供程序接口。

JNDI 可以运用在很多 JAVA EE技术上,比如在 JDBC EJB

下面一节讲述了一个分布式的 HelloWorld 的例子

0
1
分享到:
评论

相关推荐

    三种方式实现java远程调用(rmi),绝对可用

    在提供的压缩包文件中,"三种方式(原始方式_spring_jndi)实现java远程调用(rmi)"包含了相关的示例代码,帮助开发者理解并实践这三种RMI实现方法。在MyEclipse或其他Java开发环境中导入这些代码,可以进行调试和...

    Java RMI远程方法调用

    3. **RMI Registry**:RMI注册表是一个服务,用于存储远程对象的引用,它使用JNDI(Java Naming and Directory Interface)服务提供命名和目录功能。客户端通过注册表查找并获取远程对象的引用。 4. ** stubs 和 ...

    Java RMI 用于远程调用 进行分布式开发

    ### Java RMI 用于远程调用 进行分布式开发 #### 概述 Java RMI(Remote Method Invocation)是Java平台提供的一种实现分布式计算的技术,它允许开发者在不同JVM间进行方法调用,如同调用本地对象一样简单。通过...

    rmi 远程调用 实现客户端之间会话

    在Java RMI中,一个JVM作为服务器,暴露远程接口,而其他JVM作为客户端,通过这些接口进行远程调用。 标题中的“rmi 远程调用 实现客户端之间会话”指的是利用RMI技术让多个客户端与同一服务端建立会话,进行交互。...

    JAVARMI远程方法调用简单实例.docx

    在实际应用中,RMI可以与其他Java技术如EJB、JMS(Java消息服务)和JNDI(Java命名和目录接口)结合使用,以构建复杂的分布式系统。然而,需要注意的是,虽然RMI提供了面向对象的远程调用,但它本身并不处理并发控制...

    Java分布式处理技术RMI,JNDI,

    Java 分布式处理技术 RMI,JNDI Java 分布式处理技术是指在 Java 平台上实现分布式...RMI 和 JNDI 是 Java 分布式处理技术的核心组件,RMI 实现了对象之间的交互,而 JNDI 提供了一个统一的接口来访问不同的目录服务。

    基于RMI的Java远程调用.zip

    在"基于RMI的Java远程调用.pdf"文件中,可能会详细解释这些步骤,并提供示例代码来帮助读者理解和实践RMI技术。它可能会涵盖常见问题,如处理异常、优化性能、使用RMI-IIOP(RMI over IIOP,一种在CORBA基础设施上...

    JAVA实现简单分布式,JAVA调用远程方法

    在Java编程领域,分布式系统和远程方法调用(Remote Method Invocation, RMI)是关键的高级概念,它们允许不同计算机间的程序协同工作,提高系统的可扩展性和灵活性。本篇文章将探讨如何使用Java来实现简单的分布式...

    java 远程调用rmi实现的简单例子

    10. **JNDI(Java Naming and Directory Interface)**:虽然RMI可以独立工作,但通常与JNDI结合使用,提供更强大的命名和目录服务,使查找远程对象变得更加灵活。 在"RMITest"这个项目中,我们可以期待看到以下...

    JavaRMI超棒书

    - **生成存根和骨架**:使用Java RMI工具生成客户端和服务端的存根和骨架代码,以实现远程调用。 - **测试与部署**:编写测试应用程序验证远程对象的功能,最后部署应用程序并确保其正常运行。 #### 五、案例分析...

    JAVA RMI测试代码

    Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许Java对象在不同的网络环境中进行交互,就像调用本地方法一样。RMI是构建分布式应用的重要工具,尤其适用于需要跨...

    java远程方法调用

    1. 定义远程接口:创建一个接口,继承自`java.rmi.Remote`,并在接口中声明将被远程调用的方法。方法声明中必须包含`throws RemoteException`,用于处理可能出现的远程通信异常。 2. 实现远程接口:创建一个类实现...

    java RMI demo

    - **JNDI(Java Naming and Directory Interface)**:RMI通常与JNDI结合使用,提供更高级别的命名和目录服务,帮助管理和查找远程对象。 - **RMI配置**:包括设置RMI主机和端口,以及处理SSL安全连接等。这些通常...

    JAVA rmi教学课件

    总的来说,RMI是Java中实现分布式计算的关键技术,它通过存根、骨架和远程接口的机制,提供了透明的远程调用能力,简化了跨JVM的编程。开发者可以通过学习和理解RMI,构建出高效且易于维护的分布式系统。

    java_in_rmi.rar_Java RMI_RMI java_rmi _精通rmi

    首先,RMI的核心概念是远程方法调用,它允许一个Java对象调用位于另一台计算机上的对象的方法。这种机制依赖于Java的序列化机制,将远程对象的引用转化为可以在网络上传输的字节流,然后在目标机器上反序列化恢复...

    java-rmi-server.rar_Java RMI_rmi _服务器

    1. 创建远程接口:首先定义一个继承自java.rmi.Remote的接口,声明所有要远程调用的方法。 ```java public interface MyRemoteInterface extends Remote { String doSomething(String input) throws ...

    JAVA RMI入门教程

    骨架则在服务器端运行,它接收到客户端的远程调用,将这些调用转换为服务器上的本地调用,并将结果返回给客户端。存根和骨架由RMI编译工具自动生成,这个工具会分析服务器端的类,生成对应的存根和骨架代码。 RMI...

    技术专栏 _ 深入理解JNDI注入与Java反序列化漏洞利用.pdf

    这种注入可以和RMI服务相结合,以实现攻击者定义的Java方法的远程调用。 文章中提到了JdbcRowSetImpl利用链和FastJson反序列化漏洞,这些是JNDI注入攻击利用的实例。JdbcRowSetImpl是Java的一个类,它允许通过JNDI...

Global site tag (gtag.js) - Google Analytics