- java.lang.Object
-
- javax.naming.InitialContext
-
- All Implemented Interfaces:
-
Context
- 已知直接子类:
-
InitialDirContext
public class InitialContext extends Object implements Context
这个类是执行命名操作的起始上下文。所有命名操作都与上下文相关。 初始上下文实现了Context接口,并提供了解析名称的起点。
当构建初始上下文时,将使用传递给构造函数的环境参数中定义的属性和任何application resource files初始化其环境。
JNDI通过合并来自以下两个来源的值来确定每个属性的值:
- 从构造函数的环境参数和系统属性中首次出现属性。
- 应用程序资源文件(
jndi.properties)。
Context),则所有值都将连接到单个冒号分隔列表中。 对于其他属性,仅使用第一个找到的值。初始上下文实现在运行时确定。 默认策略使用环境属性“
java.naming.factory.initial”,其中包含初始上下文工厂的类名。 解决URL字符串时会出现此策略的一个例外,如下所述。当一个URL字符串(
String形式一个scheme_id的:rest_of_name)作为名称参数传递给任何方法,一个URL上下文工厂处理该方案的定位和用于解析URL。 如果没有找到这样的工厂,则使用由"java.naming.factory.initial"指定的初始上下文。 类似地,当第一个组件是URL字符串的CompositeName对象作为name参数传递给任何方法时,会定位一个URL上下文工厂,并用于解析名字组件。 有关URL上下文工厂位置的描述,请参阅NamingManager.getURLContext()。定位初始上下文和URL上下文工厂的默认策略可以通过调用
NamingManager.setInitialContextFactoryBuilder()来覆盖。当初始上下文无法实例化时抛出NoInitialContextException。 在与InitialContext的任何交互期间都可以抛出此异常,不仅在构建InitialContext时。 例如,初始上下文的实现可能只有在实际方法被调用时才可能懒惰地检索上下文。 应用程序不应该依赖于何时确定初始上下文的存在。
当环境属性“java.naming.factory.initial”不为空时,InitialContext构造函数将尝试创建其中指定的初始上下文。 那时候,如果遇到问题,最初的上下文工厂可能会引发异常。 然而,它是提供者实现相关的,当它验证并向初始上下文的用户指示任何环境属性或连接相关的问题。 它可以懒惰地进行延迟,直到在上下文中执行操作,或者在构建上下文时急切地。
InitialContext实例与多线程的并发访问不同步。 每个处理不同InitialContext实例的多个线程不需要同步。 需要同时访问单个InitialContext实例的线程应在其间同步并提供必要的锁定。
- 从以下版本开始:
- 1.3,JNDI 1.1
- 另请参见:
-
Context,NamingManager.setInitialContextFactoryBuilder
-
-
Field Summary
Fields Modifier and Type Field 描述 protected ContextdefaultInitCtx保留调用NamingManager.getInitialContext()的结果的字段。protected booleangotDefault指示是否通过调用NamingManager.getInitialContext()获取初始上下文的字段。protected Hashtable<Object,Object>myProps与此InitialContext关联的环境。-
Fields inherited from interface javax.naming.Context
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 InitialContext()构建一个初始上下文。protectedInitialContext(boolean lazy)构造一个初始上下文,并选择不初始化它。InitialContext(Hashtable<?,?> environment)使用提供的环境构建初始上下文。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 ObjectaddToEnvironment(String propName, Object propVal)在此上下文的环境中添加一个新的环境属性。voidbind(String name, Object obj)将名称绑定到对象。voidbind(Name name, Object obj)将名称绑定到对象。voidclose()关闭这个上下文。StringcomposeName(String name, String prefix)使用相对于该上下文的名称组合此上下文的名称。NamecomposeName(Name name, Name prefix)使用相对于该上下文的名称组合此上下文的名称。ContextcreateSubcontext(String name)创建并绑定新的上下文。ContextcreateSubcontext(Name name)创建并绑定新的上下文。voiddestroySubcontext(String name)销毁命名上下文并将其从命名空间中删除。voiddestroySubcontext(Name name)销毁命名上下文并将其从命名空间中删除。static <T> TdoLookup(String name)一种用于检索命名对象的静态方法。static <T> TdoLookup(Name name)一种用于检索命名对象的静态方法。protected ContextgetDefaultInitCtx()通过调用NamingManager.getInitialContext()检索初始上下文并将其缓存在defaultInitCtx中。Hashtable<?,?>getEnvironment()检索此环境有效的环境。StringgetNameInNamespace()在其自己的命名空间中检索此上下文的全名。NameParsergetNameParser(String name)检索与命名上下文关联的解析器。NameParsergetNameParser(Name name)检索与命名上下文关联的解析器。protected ContextgetURLOrDefaultInitCtx(String name)检索用于解析字符串名称name的上下文。protected ContextgetURLOrDefaultInitCtx(Name name)检索解析name的上下文。protected voidinit(Hashtable<?,?> environment)使用提供的环境初始化初始上下文。NamingEnumeration<NameClassPair>list(String name)枚举在命名上下文中绑定的名称以及绑定到它们的对象的类名。NamingEnumeration<NameClassPair>list(Name name)枚举在命名上下文中绑定的名称以及绑定到它们的对象的类名。NamingEnumeration<Binding>listBindings(String name)枚举在命名上下文中绑定的名称以及绑定到它们的对象。NamingEnumeration<Binding>listBindings(Name name)枚举在命名上下文中绑定的名称以及绑定到它们的对象。Objectlookup(String name)检索命名对象。Objectlookup(Name name)检索命名对象。ObjectlookupLink(String name)检索命名对象,除了名称的终端原子组件以外的链接。ObjectlookupLink(Name name)检索命名对象,除了名称的终端原子组件以外的链接。voidrebind(String name, Object obj)将名称绑定到对象,覆盖任何现有绑定。voidrebind(Name name, Object obj)将名称绑定到对象,覆盖任何现有绑定。ObjectremoveFromEnvironment(String propName)从环境环境中删除环境属性。voidrename(String oldName, String newName)将绑定到旧名称的对象绑定一个新名称,并取消绑定旧名称。voidrename(Name oldName, Name newName)将绑定到旧名称的对象绑定一个新名称,并取消绑定旧名称。voidunbind(String name)取消绑定命名对象。voidunbind(Name name)取消绑定命名对象。
-
-
-
字段详细信息
-
myProps
protected Hashtable<Object,Object> myProps
与此InitialContext关联的环境。 它被初始化为null,并由接受环境的构造函数或init()方法更新。
-
defaultInitCtx
protected Context defaultInitCtx
保留调用NamingManager.getInitialContext()的结果的字段。 getDefaultInitCtx()是第一次调用getDefaultInitCtx()时设置的。 getDefaultInitCtx()的后续调用返回defaultInitCtx的值。- 另请参见:
-
getDefaultInitCtx()
-
gotDefault
protected boolean gotDefault
指示是否通过调用NamingManager.getInitialContext()获取初始上下文的字段。 如果为true,其结果为defaultInitCtx。
-
-
构造方法详细信息
-
InitialContext
protected InitialContext(boolean lazy) throws NamingException构造一个初始上下文,并选择不初始化它。 当调用InitialContext构造函数时,当环境参数的值尚未知道时,这可能由子类中的构造函数使用。 子类的构造函数将调用此构造函数,计算环境值,然后在返回之前调用init()。- 参数
-
lazy- 真正的手段不初始化初始上下文; false相当于调用new InitialContext() - 异常
-
NamingException- 如果遇到命名异常 - 从以下版本开始:
- 1.3
- 另请参见:
-
init(Hashtable)
-
InitialContext
public InitialContext() throws NamingException构建一个初始上下文。 没有提供环境属性。 相当于new InitialContext(null)。- 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
InitialContext(Hashtable)
-
InitialContext
public InitialContext(Hashtable<?,?> environment) throws NamingException
使用提供的环境构建初始上下文。 环境属性在类描述中讨论。此构造函数不会修改
environment或保存对其的引用,但可以保存克隆。 在environment传递给构造函数后,调用者不应修改可变键和值。- 参数
-
environment- 用于创建初始上下文的环境。 空指示空的环境。 - 异常
-
NamingException- 如果遇到命名异常
-
-
方法详细信息
-
init
protected void init(Hashtable<?,?> environment) throws NamingException
使用提供的环境初始化初始上下文。 环境属性在类描述中讨论。此方法将修改
environment并保存其引用。 来电者可能不再修改它。- 参数
-
environment- 用于创建初始上下文的环境。 空指示空的环境。 - 异常
-
NamingException- 如果遇到命名异常 - 从以下版本开始:
- 1.3
- 另请参见:
-
InitialContext(boolean)
-
doLookup
public static <T> T doLookup(Name name) throws NamingException
一种用于检索命名对象的静态方法。 这是一个等效于调用的快捷方法:InitialContext ic = new InitialContext(); Object obj = ic.lookup();如果
name为空,则返回此上下文的新实例(其表示与该上下文相同的命名上下文,但其环境可以单独修改,并且可以并发访问)。- 参数类型
-
T- 返回对象的类型 - 参数
-
name- 要查找的对象的名称 - 结果
-
该对象绑定到
name - 异常
-
NamingException- 如果遇到命名异常 - 从以下版本开始:
- 1.6
- 另请参见:
-
doLookup(String),lookup(Name)
-
doLookup
public static <T> T doLookup(String name) throws NamingException
一种用于检索命名对象的静态方法。 详见doLookup(Name)。- 参数类型
-
T- 返回对象的类型 - 参数
-
name- 要查找的对象的名称 - 结果
-
对象绑定到
name - 异常
-
NamingException- 如果遇到命名异常 - 从以下版本开始:
- 1.6
-
getDefaultInitCtx
protected Context getDefaultInitCtx() throws NamingException
通过调用NamingManager.getInitialContext()初始上下文并将其缓存在defaultInitCtx中。 设置gotDefault以便我们知道我们以前尝试过。- 结果
- 非空高速缓存的初始上下文。
- 异常
-
NoInitialContextException- 如果找不到初始上下文。 -
NamingException- 如果遇到命名异常。
-
getURLOrDefaultInitCtx
protected Context getURLOrDefaultInitCtx(String name) throws NamingException
检索用于解析字符串名称name的上下文。 如果name名称是URL字符串,则尝试为其找到URL上下文。 如果没有找到,或者如果name不是URL字符串,则返回getDefaultInitCtx()。有关子类应如何使用此方法的说明,请参阅getURLOrDefaultInitCtx(Name)。
- 参数
-
name- 获取上下文的非空名称。 - 结果
-
name的URL上下文或缓存的初始上下文。 结果不能为空。 - 异常
-
NoInitialContextException- 如果找不到初始上下文。 -
NamingException- 遇到命名异常。 - 另请参见:
-
NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
-
getURLOrDefaultInitCtx
protected Context getURLOrDefaultInitCtx(Name name) throws NamingException
检索上下文以解析name。 如果name名称的第一个组件是URL字符串,则尝试为其找到一个URL上下文。 如果没有找到,或者如果name的第一个组件不是URL字符串,则返回getDefaultInitCtx()。当创建InitialContext的子类时,请使用以下方法。 定义一种使用此方法获取所需子类的初始上下文的新方法。
当为子类中的新方法提供实现时,使用这个新定义的方法来获取初始上下文。protected XXXContext getURLOrDefaultInitXXXCtx(Name name) throws NamingException { Context answer = getURLOrDefaultInitCtx(name); if (!(answer instanceof XXXContext)) { if (answer == null) { throw new NoInitialContextException(); } else { throw new NotContextException("Not an XXXContext"); } } return (XXXContext)answer; }public Object XXXMethod1(Name name, ...) { throws NamingException { return getURLOrDefaultInitXXXCtx(name).XXXMethod1(name, ...); }- 参数
-
name- 获取上下文的非空名称。 - 结果
-
name的URL上下文或缓存的初始上下文。 结果不能为空。 - 异常
-
NoInitialContextException- 如果找不到初始上下文。 -
NamingException- 遇到命名异常。 - 另请参见:
-
NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
-
lookup
public Object lookup(String name) throws NamingException
描述从接口Context复制检索命名对象。 详见Context.lookup(Name)。- Specified by:
-
lookup在接口Context - 参数
-
name- 要查找的对象的名称 - 结果
-
对象绑定到
name - 异常
-
NamingException- 如果遇到命名异常
-
lookup
public Object lookup(Name name) throws NamingException
说明从界面Context复制检索命名对象。 如果name为空,则返回此上下文的新实例(其表示与该上下文相同的命名上下文,但其环境可以独立修改,并且可以并发访问)。- Specified by:
-
lookup在接口Context - 参数
-
name- 要查找的对象的名称 - 结果
-
对象绑定到
name - 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.lookup(String),Context.lookupLink(Name)
-
bind
public void bind(String name, Object obj) throws NamingException
说明从接口Context复制将名称绑定到对象。 详见Context.bind(Name, Object)。- Specified by:
-
bind在接口Context - 参数
-
name- 要绑定的名称 可能不是空的 -
obj- 要绑定的对象; 可能为null - 异常
-
NameAlreadyBoundException- 如果名称已经绑定 -
InvalidAttributesException- 如果对象没有提供所有必需属性 -
NamingException- 如果遇到命名异常
-
bind
public void bind(Name name, Object obj) throws NamingException
描述从接口Context复制将名称绑定到对象。 所有中间上下文和目标上下文(由名称的所有终端原子组件命名)必须已经存在。- Specified by:
-
bind在接口Context - 参数
-
name- 要绑定的名称 可能不是空的 -
obj- 要绑定的对象; 可能为null - 异常
-
NameAlreadyBoundException- 如果名称已经绑定 -
InvalidAttributesException- 如果对象没有提供所有必需属性 -
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.bind(String, Object),Context.rebind(Name, Object),DirContext.bind(Name, Object, javax.naming.directory.Attributes)
-
rebind
public void rebind(String name, Object obj) throws NamingException
描述从接口Context复制将名称绑定到对象,覆盖任何现有绑定。 详见Context.rebind(Name, Object)。- Specified by:
-
rebind在接口Context - 参数
-
name- 要绑定的名称 可能不是空的 -
obj- 要绑定的对象; 可能为null - 异常
-
InvalidAttributesException- 如果对象没有提供所有强制属性 -
NamingException- 如果遇到命名异常
-
rebind
public void rebind(Name name, Object obj) throws NamingException
说明从界面:Context复制将名称绑定到对象,覆盖任何现有绑定。 所有中间上下文和目标上下文(由名称的所有终端原子组件命名)必须已经存在。如果对象是一个
DirContext,则与该名称相关联的任何现有属性都将替换为该对象的属性。 否则,与名称关联的任何现有属性都保持不变。- Specified by:
-
rebind在接口Context - 参数
-
name- 要绑定的名称 可能不是空的 -
obj- 要绑定的对象; 可能为null - 异常
-
InvalidAttributesException- 如果对象没有提供所有必需属性 -
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.rebind(String, Object),Context.bind(Name, Object),DirContext.rebind(Name, Object, javax.naming.directory.Attributes),DirContext
-
unbind
public void unbind(String name) throws NamingException
说明从界面Context复制取消绑定命名对象。 详见Context.unbind(Name)。- Specified by:
-
unbind在接口Context - 参数
-
name- 取消绑定的名称 可能不是空的 - 异常
-
NameNotFoundException- 如果中间上下文不存在 -
NamingException- 如果遇到命名异常
-
unbind
public void unbind(Name name) throws NamingException
描述从接口Context复制取消绑定命名对象。 从目标上下文中删除name的终端原子名称 - 由name的末端原子部分name。这种方法是幂等的。 即使终端原子名称未绑定在目标上下文中也可以成功,但如果任何中间上下文不存在,则抛出
NameNotFoundException。与名称相关联的任何属性都将被删除。 中间上下文不变。
- Specified by:
-
unbind在接口Context - 参数
-
name- 取消绑定的名称 可能不是空的 - 异常
-
NameNotFoundException- 如果中间上下文不存在 -
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.unbind(String)
-
rename
public void rename(String oldName, String newName) throws NamingException
描述从接口Context复制将绑定到旧名称的对象绑定一个新名称,并取消绑定旧名称。 详见Context.rename(Name, Name)。- Specified by:
-
rename在接口Context - 参数
-
oldName- 现有绑定的名称; 可能不是空的 -
newName- 新绑定的名称; 可能不是空的 - 异常
-
NameAlreadyBoundException- 如果newName已经绑定 -
NamingException- 如果遇到命名异常
-
rename
public void rename(Name oldName, Name newName) throws NamingException
说明从接口Context复制将绑定到旧名称的对象绑定一个新名称,并取消绑定旧名称。 这两个名称都是相对于这个上下文。 与旧名称相关联的任何属性都将与新名称相关联。 旧名称的中间上下文不会更改。- Specified by:
-
rename在接口Context - 参数
-
oldName- 现有绑定的名称; 可能不是空的 -
newName- 新绑定的名称; 可能不是空的 - 异常
-
NameAlreadyBoundException- 如果newName已经绑定 -
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.rename(String, String),Context.bind(Name, Object),Context.rebind(Name, Object)
-
list
public NamingEnumeration<NameClassPair> list(String name) throws NamingException
描述从接口Context复制枚举在命名上下文中绑定的名称以及绑定到它们的对象的类名。 详见Context.list(Name)。- Specified by:
-
list在接口Context - 参数
-
name- 要列出的上下文的名称 - 结果
-
在此上下文中枚举绑定的名称和类名称。
枚举的每个元素都是
NameClassPair。 - 异常
-
NamingException- 如果遇到命名异常
-
list
public NamingEnumeration<NameClassPair> list(Name name) throws NamingException
说明从界面Context复制枚举在命名上下文中绑定的名称以及绑定到它们的对象的类名。 不包括任何subcontexts的内容。如果将绑定添加到此上下文或从此上下文中删除,则其对先前返回的枚举的影响是未定义的。
- Specified by:
-
list在接口Context - 参数
-
name- 要列出的上下文的名称 - 结果
-
在此上下文中枚举绑定的名称和类名称。
枚举的每个元素的类型是
NameClassPair。 - 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.list(String),Context.listBindings(Name),NameClassPair
-
listBindings
public NamingEnumeration<Binding> listBindings(String name) throws NamingException
描述从接口Context复制枚举在命名上下文中绑定的名称以及绑定到它们的对象。 详见Context.listBindings(Name)。- Specified by:
-
listBindings接口Context - 参数
-
name- 要列出的上下文的名称 - 结果
-
在这个上下文中绑定的枚举。
枚举的每个元素都是
Binding。 - 异常
-
NamingException- 如果遇到命名异常
-
listBindings
public NamingEnumeration<Binding> listBindings(Name name) throws NamingException
描述从接口Context复制枚举在命名上下文中绑定的名称以及绑定到它们的对象。 不包括任何subcontexts的内容。如果将绑定添加到此上下文或从此上下文中删除,则其对先前返回的枚举的影响是未定义的。
- Specified by:
-
listBindings在接口Context - 参数
-
name- 要列出的上下文的名称 - 结果
-
在这个上下文中绑定的枚举。
枚举的每个元素的类型是
Binding。 - 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.listBindings(String),Context.list(Name),Binding
-
destroySubcontext
public void destroySubcontext(String name) throws NamingException
描述从接口Context复制销毁命名上下文并将其从命名空间中删除。 详见Context.destroySubcontext(Name)。- Specified by:
-
destroySubcontext在接口Context - 参数
-
name- 要销毁的上下文的名称; 可能不是空的 - 异常
-
NameNotFoundException- 如果中间上下文不存在 -
NotContextException- 如果名称是绑定的,但不指定上下文,或者不指定适当类型的上下文 -
ContextNotEmptyException- 如果命名的上下文不为空 -
NamingException- 如果遇到命名异常
-
destroySubcontext
public void destroySubcontext(Name name) throws NamingException
说明从接口Context复制销毁命名上下文并将其从命名空间中删除。 与名称相关联的任何属性也将被删除。 中间语境不会被破坏。这种方法是幂等的。 即使终端原子名称未绑定在目标上下文中,也可以成功,但如果任何中间上下文不存在,则抛出
NameNotFoundException。在联合命名系统中,来自一个命名系统的上下文可能绑定到另一个命名系统中的名称。 随后可以使用复合名称查找并执行对外部上下文的操作。 然而,企图破坏使用此复合名称将失败与上下文
NotContextException,因为外部上下文不是在它所在的上下文的“子上下文”。 相反,使用unbind()删除外部上下文的绑定。 破坏外部环境要求在外部环境的“本机”命名系统的上下文中执行destroySubcontext()。- Specified by:
-
destroySubcontext在接口Context - 参数
-
name- 要销毁的上下文的名称; 可能不是空的 - 异常
-
NameNotFoundException- 如果中间上下文不存在 -
NotContextException- 如果名称是绑定的,但不指定上下文,或者不指定适当类型的上下文 -
ContextNotEmptyException- 如果命名上下文不为空 -
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.destroySubcontext(String)
-
createSubcontext
public Context createSubcontext(String name) throws NamingException
描述从接口Context复制创建并绑定新的上下文。 详见Context.createSubcontext(Name)。- Specified by:
-
createSubcontext在接口Context - 参数
-
name- 要创建的上下文的名称; 可能不是空的 - 结果
- 新创建的上下文
- 异常
-
NameAlreadyBoundException- 如果名称已经绑定 -
InvalidAttributesException- 如果子InvalidAttributesException创建需要规定强制属性 -
NamingException- 如果遇到命名异常
-
createSubcontext
public Context createSubcontext(Name name) throws NamingException
说明从接口Context复制创建并绑定新的上下文。 使用给定的名称创建一个新的上下文,并将其绑定到目标上下文中(由名称的所有端子原子组件命名)。 所有中间上下文和目标上下文必须已经存在。- Specified by:
-
createSubcontext在接口Context - 参数
-
name- 要创建的上下文的名称; 可能不是空的 - 结果
- 新创建的上下文
- 异常
-
NameAlreadyBoundException- 如果名称已经绑定 -
InvalidAttributesException- 如果子上下文的创建需要规定强制属性 -
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.createSubcontext(String),DirContext.createSubcontext(javax.naming.Name, javax.naming.directory.Attributes)
-
lookupLink
public Object lookupLink(String name) throws NamingException
描述从接口Context复制检索命名对象,除了名称的终端原子组件以外的链接。 详见Context.lookupLink(Name)。- Specified by:
-
lookupLink在接口Context - 参数
-
name- 要查找的对象的名称 - 结果
-
对象绑定到
name,不跟随终端链接(如果有) - 异常
-
NamingException- 如果遇到命名异常
-
lookupLink
public Object lookupLink(Name name) throws NamingException
描述从接口Context复制检索命名对象,除了名称的终端原子组件以外的链接。 如果绑定到name的对象不是链接,则返回对象本身。- Specified by:
-
lookupLink在接口Context - 参数
-
name- 要查找的对象的名称 - 结果
-
对象绑定到
name,不跟随终端链接(如果有的话)。 - 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.lookupLink(String)
-
getNameParser
public NameParser getNameParser(String name) throws NamingException
描述从界面Context复制检索与命名上下文关联的解析器。 详见Context.getNameParser(Name)。- Specified by:
-
getNameParser在接口Context - 参数
-
name- 从中获取解析器的上下文的名称 - 结果
- 一个名称解析器,可以将复合名称解析为其原子组件
- 异常
-
NamingException- 如果遇到命名异常
-
getNameParser
public NameParser getNameParser(Name name) throws NamingException
说明从接口Context复制检索与命名上下文关联的解析器。 在命名空间联盟中,不同的命名系统会以不同的方式解析名称。 该方法允许应用程序使用特定命名系统的命名约定来获取解析器将其解析为其原子组件的名称。 在任何单个命名系统中,此方法返回的NameParser对象必须相等(使用equals()测试)。- Specified by:
-
getNameParser在接口Context - 参数
-
name- 从中获取解析器的上下文的名称 - 结果
- 一个名称解析器,可以将复合名称解析为其原子组件
- 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.getNameParser(String),CompoundName
-
composeName
public String composeName(String name, String prefix) throws NamingException
使用相对于该上下文的名称组合此上下文的名称。 由于初始上下文可能永远不会相对于自身以外的任何上下文命名,因此prefix参数的值必须为""("")。- Specified by:
-
composeName在接口Context - 参数
-
name- 相对于此上下文的名称 -
prefix- 此上下文相对于其祖先之一的名称 - 结果
-
组成为
prefix和name - 异常
-
NamingException- 如果遇到命名异常
-
composeName
public Name composeName(Name name, Name prefix) throws NamingException
使用相对于该上下文的名称组合此上下文的名称。 由于初始上下文可能永远不会相对于自身以外的任何上下文命名,所以prefix参数的值必须为prefix。- Specified by:
-
composeName在接口Context - 参数
-
name- 相对于此上下文的名称 -
prefix- 此上下文相对于其祖先之一的名称 - 结果
-
组成
prefix和name - 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.composeName(String, String)
-
addToEnvironment
public Object addToEnvironment(String propName, Object propVal) throws NamingException
描述从接口Context复制在此上下文的环境中添加一个新的环境属性。 如果属性已经存在,其值将被覆盖。 有关环境属性的详细信息,请参阅类描述。- Specified by:
-
addToEnvironment在接口Context - 参数
-
propName- 要添加的环境属性的名称; 可能不为空 -
propVal- 要添加的属性的值; 可能不为空 - 结果
- 该属性的前一个值,如果该属性不在之前的环境中,则返回null
- 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.getEnvironment(),Context.removeFromEnvironment(String)
-
removeFromEnvironment
public Object removeFromEnvironment(String propName) throws NamingException
说明从接口Context复制从环境环境中删除环境属性。 有关环境属性的详细信息,请参阅类描述。- Specified by:
-
removeFromEnvironment在接口Context - 参数
-
propName- 要删除的环境属性的名称; 可能不为空 - 结果
- 属性的先前值,如果属性不在环境中,则为null
- 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.getEnvironment(),Context.addToEnvironment(String, Object)
-
getEnvironment
public Hashtable<?,?> getEnvironment() throws NamingException
描述从接口Context复制检索此环境有效的环境。 有关环境属性的详细信息,请参阅类描述。调用者不应该对返回的对象进行任何更改:它们对上下文的影响是未定义的。 此上下文的环境可能使用
addToEnvironment()和removeFromEnvironment()进行更改。- Specified by:
-
getEnvironment在接口Context - 结果
- 这个环境的环境; 从不为空
- 异常
-
NamingException- 如果遇到命名异常 - 另请参见:
-
Context.addToEnvironment(String, Object),Context.removeFromEnvironment(String)
-
close
public void close() throws NamingException说明从接口Context复制关闭这个上下文。 此方法可以立即释放上下文的资源,而不是等待垃圾回收器自动释放该资源。该方法是幂等的:在已经关闭的上下文中调用它没有任何效果。 不允许在封闭上下文中调用任何其他方法,并导致未定义的行为。
- Specified by:
-
close在接口Context - 异常
-
NamingException- 如果遇到命名异常
-
getNameInNamespace
public String getNameInNamespace() throws NamingException
描述从接口Context复制在其自己的命名空间中检索此上下文的全名。许多命名服务对于各自的命名空间中的对象都有一个“全名”概念。 例如,LDAP条目具有可分辨名称,DNS记录具有完全限定名称。 此方法允许客户端应用程序检索此名称。 此方法返回的字符串不是JNDI组合名称,不应直接传递给上下文方法。 在命名系统中,全名概念没有意义,抛出
OperationNotSupportedException。- Specified by:
-
getNameInNamespace在接口Context - 结果
- 这个上下文的名称在自己的命名空间中; 从不为空
- 异常
-
OperationNotSupportedException- 如果命名系统没有全名的概念 -
NamingException- 如果遇到命名异常
-
-