最近再看spring,今天看到spring整合jndi,就整理一下jndi的相关资料,写了个简单的开发实例。
先来介绍下jndi
JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。
目录服务是命名服务的自然扩展。两者之间的关键差别是目录服务中对象可以有属性(例如,用户有email地址),而命名服务中对象没有属性。因此,在目录服务中,你可以根据属性搜索对象。JNDI允许你访问文件系统中的文件,定位远程RMI注册的对象,访问象LDAP这样的目录服务,定位网络上的EJB组件。
关于JNDI要注意的重要一点是,它提供了应用编程接口(application programming interface,API)和服务提供者接口(service provider interface,SPI)。
JNDI API由5个包组成: l Javax.naming:包含了访问命名服务的类和接口。例如,它定义了Context接口,这是命名服务执行查询的入口。 l Javax.naming.directory:对命名包的扩充,提供了访问目录服务的类和接口。例如,它为属性增加了新的类,提供了表示目录上下文的DirContext接口,定义了检查和更新目录对象的属性的方法。 l Javax.naming.event:提供了对访问命名和目录服务时的时间通知的支持。例如,定义了NamingEvent类,这个类用来表示命名/目录服务产生的事件,定义了侦听NamingEvents的NamingListener接口。 l Javax.naming.ldap:这个包提供了对LDAP 版本3扩充的操作和控制的支持,通用包javax.naming.directory没有包含这些操作和控制。 l Javax.naming.spi:这个包提供了一个方法,通过javax.naming和有关包动态增加对访问命名和目录服务的支持。这个包是为有兴趣创建服务提供者的开发者提供的。
http://javacrazyer.iteye.com/blog/759485
下面介绍下jboss下jndi的开发实例,其实也可以作为简单的ejb实例的搭建。
首先,搭建ejb项目,发布一个remote接口
1)创建一个ejb工程,将jboss目录下client文件夹中的所有jar包引入
2)创建接口package com.jiangxl.ejb;
public interface HelloWorld {
public String sayHello(String name);
}
3)创建实现类
package com.jiangxl.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {
public String sayHello(String name) {
return name+"说:世界,你好。";
}
}
4)将该工程打成jar包,发布到jboss,这样,一个remote接口发布完成。
下面就开始用jndi进行访问远程发布的接口
1)在src下新建文件jndi.properties,指定jndi提供上,本实例用的是jboss
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
2)建立客户端访问类
package com.jiangxl.ejb;
import javax.naming.InitialContext;
public class EJBClient {
public static void main(String[] args){
try{
InitialContext context = new InitialContext();
HelloWorld helloWorld = (HelloWorld)context.lookup("HelloWorldBean/remote");
System.out.println(helloWorld.sayHello("小麦"));
}catch(Exception e){
e.printStackTrace();
}
}
}
启动jboss,然后运行main方法,就可以访问远程接口了。
分享到:
相关推荐
本文将深入探讨JNDI的使用实例,帮助开发者更好地理解和应用这一技术。 首先,我们需要了解JNDI的基本概念。JNDI是一个服务提供商接口(SPI),允许应用程序查找和操作存储在不同类型的命名和目录系统中的数据。...
**JNDI(Java Naming and Directory Interface)使用详解** JNDI是Java平台中的一个标准接口,它为Java应用程序提供了一种访问命名和目录服务的统一方式。在Java应用程序中,JNDI主要用来查找和绑定对象,这些对象...
在Java开发中,JNDI(Java ...通过这个小实例,开发者可以理解JNDI和数据源在Java EE应用中的重要性,以及它们如何简化数据库连接管理和提高性能。了解并掌握这些知识,对于开发高效、可扩展的企业级应用是至关重要的。
Tomcat 6.0 通过 JNDI 连接 MySQL 实例 Tomcat 6.0 中通过 JNDI 连接 MySQL 实例需要进行详细的配置和设置。本文将对 Tomcat 6.0 中的 JNDI 连接 MySQL 实例进行详细的介绍和解释。 配置 JNDI 资源 在 Tomcat 6.0...
这个"JNDI简单应用示例"可能是演示如何使用JNDI进行基本操作的代码实例,例如: 1. **初始化Naming Context**:首先,你需要创建一个初始上下文(InitialContext),这是所有JNDI操作的起点。这通常通过传递一个...
在Java世界中,JNDI(Java Naming and Directory Interface)是一种标准接口,它允许应用程序查找和绑定各种命名和目录服务。这个技术的核心理念是提供一个统一的接口来访问不同的资源,比如数据库连接、EJB...
总结来说,这个Tomcat 6.0 JNDI数据源经典实例提供了从配置到使用的全过程,包括了必要的文件和脚本,便于开发者理解和实践JNDI数据源在实际项目中的应用。正确配置和使用JNDI数据源能有效管理和优化数据库连接,...
在Java应用中,JNDI(Java Naming and Directory Interface)是一种标准的接口,它允许应用程序查找和使用资源,如数据源(DataSource),而无需直接在代码中硬编码这些资源的位置或配置信息。JNDI的核心理念是将...
8. **JNDI与EJB和JDBC**:在Enterprise JavaBeans (EJB) 中,JNDI用于查找和注入EJB实例。在Java Database Connectivity (JDBC) 中,数据源通常通过JNDI查找来获取,这样可以轻松地在不同环境中配置数据库连接。 9....
在这个实例中,我们将讨论如何在基于Tomcat的Web服务器上使用JNDI来创建数据库连接池。 首先,理解JNDI的工作原理至关重要。JNDI的核心是名称绑定,即将一个名称(比如“jdbc/myDataSource”)与一个对象(如数据库...
应用中通过`InitialContext`查找这个JNDI名,即可获取到数据源实例,然后通过数据源获取数据库连接。 总结来说,JNDI连接池是Java应用中管理数据库连接的重要工具,它利用JNDI的抽象特性,结合连接池技术,实现了...
- **松耦合**:JNDI允许应用程序与资源之间保持松散耦合,因为它们之间的联系是通过名称而不是硬编码的实例引用。 - **可扩展性**:随着系统的发展,可以轻松添加新的命名或目录服务,而无需修改现有代码。 - **集中...
Java演示JNDI(Java Naming and Directory Interface)的使用是一个重要的概念,特别是在企业级Java应用程序开发中,如EJB(Enterprise JavaBeans)。JNDI是一个API,它为Java应用程序提供了一个标准接口来查找和...
在Java Web应用中,JNDI通常与Java EE服务器(如Tomcat、JBoss、WebLogic等)结合使用,用于管理应用的资源。以下是一些常见场景: 1. **JDBC数据源**:JNDI可以用来查找和配置数据源。开发人员在服务器配置文件中...
### JNDI基础及其在J2EE中的应用 #### 一、JNDI概述 **JNDI**(Java Naming and Directory Interface)...在实际开发中,正确地使用JNDI可以大大简化分布式应用中资源的查找和使用过程,提高代码的灵活性和可维护性。
- **EJB Home Stub及EJB环境变量**:在EJB(Enterprise JavaBeans)环境中,JNDI用来查找EJB的Home接口,以及EJB实例的环境配置信息。 - **JDBC DataSource**:用于查找和管理数据库连接资源。 - **JMS Connection ...
- 为了测试JNDI配置是否正确,你可以尝试从Spring应用上下文中获取数据源并打印其信息,确保能成功查找并实例化。 6. **扩展性与最佳实践**: - 考虑使用Spring Boot,它提供了更简洁的方式来配置JNDI数据源,只...
### Java JNDI总结 #### 一、JNDI简介 **JNDI**(Java Naming and Directory Interface)是Java平台中的一个API,用于访问命名...无论是对于简单的Web应用程序还是复杂的企业级系统,掌握JNDI的使用都是非常必要的。
`log4j`是广泛使用的日志记录框架,而`c3p0`是一个流行的数据库连接池实现,`JNDI`(Java Naming and Directory Interface)则是一种用于查找和管理资源的接口。这个“log4j\c3p0\jndi详细配置实例”可能是包含了一...