- 浏览: 114784 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
yongliang567:
楼主,你对双重检查加锁这种单例实现方法的分析是对的,但是你既然 ...
关于单例(Singleton)模式实现方式的反思 -
xbl001529:
支持IE8吗?
[效果]JS折叠菜单
在 J2EE 中, JNDI 的目的是用来查找 J2EE 服务器的注册资源(如 EJB 等)
一、 JNDI 简介
命名服务提供了一种为对象命名的机制,这样你就可以在无需知道对象位置的情况下获取和使用对象。只要该对象在命名服务器上注册过,且你必须知道命名服务器的地址和该对象在命名服务器上注册的 JNDI 名。就可以找到该对象,获得其引用,从而运用它提供的服务。
利用 JNDI 可以寻找在命名服务器上注册过的所有对象。
JNDI 就是为 JAVA 中命名和目录服务定义的 JAVA API ,是命名服务的抽象机制。我们可以直接通过 JNDI 来操作命名服务,而不要与底层的命名服务器交互,大大减轻了程序员的压力。
二、 应用 JNDI
1. 启动和关闭 JNDI 服务器
在用 j2ee –verbose 启动 J2EE 服务器的同时,也就启动了 JNDI 服务器。一般情况下, J2EE 服务器启动的同时, JNDI 服务器也就启动了。
J2ee –stop 关闭 JNDI 服务器
2. 获得名字服务的初始环境
Contect ctx=new InitailContext();
这样获得的初妈环境为默认的命名服务。假如你想改变提供 JNDI 服务的类(或厂商)和提供 JNDI 服务的命名服务器,可以采用以下方法:
Hashtable Env=new Hashtable();
Env.put(Context.INITIAL_CONTEXT_FACTORY,”com.sun.enterprise.naming.SerialInitContextFactory”);// 指定提供命名服务的类名
Env.put(Context.PROVIDER_URL,”localhost:1099”);// 指定提供命名服务的服务器名和端口
Context ctx=new InitialContext(env);
2. 对象绑定
用 bind(String name,Object o) 方法 ,把对象 o 绑定到名字 name 上
例 :import javax.naming.*;
public class TestJNDI{
public static void main(String[] args){
try{
Context ctx=new InitialContext();
Ctx.bind(“ABC”,”JAVA1”);// 把 JAVA1 字符串绑定到 ABC 上
}catch(NamingException e){
e.printStackTrace();
}
}
}
如果名字已绑定或命名服务器没有启动,则会出现 NamingException 异常
3. 重新绑定
用 ctx.rebind(String name,Object o)
如 :ctx.rebind(“ABC”,”JAVA2”);// 现在 ABC 就绑定到 JAVA2 字符串
4. 解除绑定
ctx.unbind(String name);
不过你要确保该名字存在,否则出现 NameNotFoundException 异常
5. 查找已绑定的对象
用 ctx.lookup(String name); 根据 name 找对象
例 :
import javax.naming.*;
public class TestJNDI{
public static void main(String[] args){
try{
Context ctx=new InitialContext();
Object o=ctx.lookup(“ABC”);// 根据 JNDI 名查找绑定的对象
String s=(String)o;// 强制转换
}catch(NamingException e){
e.printStackTrace();
}catch(ClassCastException e){
e.printStackTrace();
}
}
}
6. 在 EJB 中的应用 ( 查找 EJB HOME 对象 )
InitialContext ic=new InitialContext();
Object o=ic.lookup(“java:comp/env/ejb/Hello”);// 利用 JNDI 名查找 EJB HOME
HelloHome home=(HelloHome)PortableRemoteObject.narrow(lookup,HelloHome.class);// 定位 EJB //HOME 对象
Hello hello=home.create();// 用 EJB HOME 创建 EJB 对象
发表评论
-
通过spring取得国际化文件
2012-03-23 16:18 1932/* * @(#) ScheduleController ... -
java 能否做成C/S架构的,同时他能否写程序调用IE框架
2008-10-20 14:21 1055据说现在java在C/S方面 有了很大进步,想着想写个程序。通 ... -
转载 java面向对象—抽象类、接口与多继承
2008-10-20 09:49 1288有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一 ... -
java高级编程:基于JNDI的应用开发
2008-10-17 10:58 1136基于JNDI的应用开发 ... -
JAVA里protected属性和方法的完整测试
2008-10-13 13:53 1328先说几个protected的使用原则,后面再看对应的例子。 ... -
java中中文问题
2008-10-09 13:36 8881、如果一个数据库的编码是iso8859-1的,我在java代 ... -
关于单例(Singleton)模式实现方式的反思
2008-10-06 15:57 1177大家都知道单例模式,也知道实现的方法,最近看到几个网友推荐的文 ... -
如何使用Static的变量和方法
2008-09-26 14:25 895有时你希望定义一个类 ... -
dom4j读取xml(笔记)
2008-09-26 10:20 11238Java代码 SAXReader reader ... -
关于struts的几个注意的地方 第一章
2008-09-26 10:14 779J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手 ... -
关于struts的几个注意的地方
2008-09-26 09:59 766关于struts的几个注意的 ... -
Java Vector
2008-09-09 15:32 2884Vector 类可以实现可增长的对象数组。与数组一样,它包含 ... -
Linux 文件命令精通指南
2008-07-15 10:01 989为刚接触 Linux 文件命令的初学者提供的速成教程 ... -
Java 设计模式与建模专题
2008-07-09 15:32 1015http://www.ibm.com/developerwor ... -
Java并发编程基础知识片段(一)
2008-06-27 16:45 988原创 Java并发编程基础知识片段(一)收藏 Java 5并发 ... -
关于junit实现过程详细介绍
2008-04-14 16:16 980测试分类:白箱测试、黑箱测试、单元测试、集成测试、功能测试…… ... -
循序渐进学习Junit
2008-04-14 16:15 1238用JUnit可以大量减少Java ... -
JUnit入门
2008-04-14 16:14 834JUnit是一个开源的java单元测试框架。在1997年,由 ... -
Java正则表达式入门
2008-03-18 17:38 912Java中正则表达式使用方法详解: http://tech.1 ... -
Java正则表达式入门
2008-03-18 13:56 888众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字 ...
相关推荐
【JNDI命名和目录服务】是JAVA编程中的一项核心技术,它提供了对各种命名和目录服务的统一访问接口。JNDI,全称为Java Naming and Directory Interface,它不是具体的命名或目录服务,而是一组API,使得Java程序能够...
JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,...
JNDI和JDBC2.0扩展API是Java平台中用于构建高性能、高可用性企业级应用的关键技术。它们不仅简化了分布式环境下的资源管理和数据库访问,还通过提供丰富的功能和优化策略,显著提升了应用的灵活性和效率。深入理解和...
### Java 命名和目录服务的接口 (JNDI) #### 一、JNDI 概述 Java Naming and Directory Interface(JNDI)是Java平台提供的一个标准API,用于实现应用程序与命名及目录服务之间的交互。它类似于Java Database ...
Java JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API。它允许Java开发者在应用程序中查找和绑定资源,如数据源、EJB(Enterprise JavaBeans)、邮件服务器等。JNDI的核心...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问和管理命名和目录服务的一组接口和类。它提供了一种标准的方式来查找和访问多种类型的服务,如对象注册表、目录服务、数据库连接池等。JNDI的核心...
JNDI(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问各种命名和目录服务。它提供了一种统一的方式,使得Java应用程序可以透明地访问不同的命名和目录服务,如LDAP、DNS等。 **特点...
JNDI(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问命名和目录服务。它允许程序查找和操作存储在不同类型的命名或目录服务中的对象,如 LDAP(Lightweight Directory Access ...
总结来说,JNDI和LDAP的结合使得Java开发者能轻松地管理和操作分布式目录服务,为企业的身份验证、授权和数据管理提供了强大支持。学习并熟练掌握这两者之间的交互对于提升Java应用的复杂性和可扩展性至关重要。通过...
Java EE 中的资源注入是指通过 JNDI(Java 命名和目录接口)命名空间将企业级应用程序中所需的各种资源(如数据源、连接器和自定义资源等)动态地注入到容器管理的对象(例如 Servlet、JavaBean 等)中的过程。...
JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的API。它提供了一种查找和定位应用程序所需的资源(如数据库连接、消息队列、EJBs等)的方式。在本文中,我们将通过一个具体的示例...
"jndi.ppt"这个文件很可能包含了JNDI和目录服务的详细讲解,可能涵盖以下内容: - JNDI的基本概念和工作原理 - JNDI API的使用方法,如Context接口和Naming接口 - LDAP服务的介绍和与JNDI的结合 - 实际案例,如如何...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问和管理命名和目录服务的一组接口和类。它提供了一种标准的方式来查找和访问多种类型的资源,如数据源、对象服务、邮件服务器等。JNDI的核心理念是...
Java Naming and Directory Interface (JNDI) 是一种在Java环境中访问命名和目录服务的API。它为开发人员提供了查找和引用远程对象的标准方法,这包括数据库资源、消息队列和其他服务。JNDI的一个主要优势是它提供了...
**JNDI**(Java Naming and Directory Interface)是Java平台中的一个API,用于访问命名和目录服务,这些服务可以存储对象引用及其名称。JNDI的主要作用在于提供了一种在分布式环境中查找和访问远程对象的标准方法。...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种不同的命名和目录服务提供了统一的接口。在Java应用程序中,JNDI允许开发者查找和绑定对象,这些对象可以是数据源、...
Java 命名和目录接口(JNDI)是Java应用程序访问命名和目录服务的关键工具。命名服务的核心功能是通过名称将对象与它们的标识关联,便于用户通过名称而非直接引用访问对象。目录服务则在此基础上增加了属性概念,...
JavaJNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API,它允许Java应用程序查找和管理分布在不同网络环境中的资源。数据连接池(Connection Pool)是Java应用中用于管理...
经过oracle 驱动测试通过的jndi.jar