java.lang.Object
javax.naming.spi.NamingManager
javax.naming.spi.DirectoryManager
此类包含支持
DirContext
实现的方法。
此类是 NamingManager
的扩展。它包含供服务提供者使用的方法,用于访问对象工厂和状态工厂,以及用于获取支持联合的延续上下文。
DirectoryManager
对于多线程并发访问是安全的。
除非另有说明,否则传递给任何方法的 Name
、 Attributes
或环境参数均归调用者所有。该实现不会修改对象或保留对它的引用,尽管它可能会保留对克隆或副本的引用。
- 自从:
- 1.3
- 参见:
-
字段摘要
在类 javax.naming.spi.NamingManager 中声明的字段
CPE
-
方法总结
修饰符和类型方法描述static DirContext
创建一个上下文以继续执行DirContext
操作。static Object
getObjectInstance
(Object refInfo, Name name, Context nameCtx, Hashtable<?, ?> environment, Attributes attrs) 为指定的对象、属性和环境创建对象的实例。static DirStateFactory.Result
getStateToBind
(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment, Attributes attrs) 在给定原始对象及其属性时检索对象的状态以进行绑定。
-
方法详情
-
getContinuationDirContext
public static DirContext getContinuationDirContext(CannotProceedException cpe) throws NamingException 创建一个上下文以继续执行DirContext
操作。操作就像NamingManager.getContinuationContext()
,只是返回的延续上下文是DirContext
。- 参数:
cpe
- 触发此延续的非空异常。- 返回:
-
用于继续操作的非空
DirContext
对象。 - 抛出:
NamingException
- 如果发生命名异常。- 参见:
-
getObjectInstance
public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable <?, ?> environment, Attributes attrs) throws Exception为指定的对象、属性和环境创建对象的实例。此方法与
NamingManager.getObjectInstance
相同,但存在以下差异:- 它接受一个包含与对象关联的属性的
Attributes
参数。DirObjectFactory
可能会使用这些属性来避免从目录中查找它们。 - 尝试的对象工厂必须实现
ObjectFactory
或DirObjectFactory
。如果它实现DirObjectFactory
,则使用DirObjectFactory.getObjectInstance()
,否则使用ObjectFactory.getObjectInstance()
。
DirContext
接口的服务提供商应该使用此方法,而不是NamingManager.getObjectInstance()
。- 参数:
refInfo
- 要为其创建对象的可能为空的对象。name
- 此对象相对于nameCtx
的名称。指定名称是可选的;如果省略,name
应为空。nameCtx
- 指定name
参数的相关上下文。如果为 null,则name
是相对于默认初始上下文的。environment
- 用于创建对象工厂和对象的可能为 null 的环境。attrs
- 与 refInfo 关联的可能为空的属性。这可能不是 refInfo 的完整属性集;您也许能够从目录中读取更多属性。- 返回:
-
使用
refInfo
和attrs
创建的对象;或者refInfo
如果工厂无法创建对象。 - 抛出:
NamingException
- 如果在尝试获取 URL 上下文时遇到命名异常,或者访问的工厂之一抛出 NamingException。Exception
- 如果访问的工厂之一抛出异常,或者在加载和实例化工厂和对象类时遇到错误。如果工厂不希望使用其他工厂来尝试创建对象,则工厂应该只抛出异常。参见DirObjectFactory.getObjectInstance()
。- 自从:
- 1.3
- 参见:
- 它接受一个包含与对象关联的属性的
-
getStateToBind
public static DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable <?, ?> environment, Attributes attrs) throws NamingException在给定原始对象及其属性时检索对象的状态以进行绑定。此方法与
NamingManager.getStateToBind
类似,但存在以下差异:- 它接受一个
Attributes
参数,其中包含传递给DirContext.bind()
方法的属性。 - 它返回一个非 null
DirStateFactory.Result
实例,其中包含要绑定的对象以及绑定附带的属性。对象或属性可以为空。 - 尝试过的国有工厂必须各自实施
StateFactory
或DirStateFactory
。如果它实现了DirStateFactory
,那么调用DirStateFactory.getStateToBind()
;否则,调用StateFactory.getStateToBind()
。
DirContext
接口的服务提供商应该使用此方法,而不是NamingManager.getStateToBind()
。有关如何确定要尝试的状态工厂列表的说明,请参阅 NamingManager.getStateToBind()。
此方法返回的对象归调用者所有。实现不会随后修改它。它将包含同样由调用者拥有的新
Attributes
对象,或对原始attrs
参数的引用。- 参数:
obj
- 要为其绑定状态的非空对象。name
- 此对象相对于nameCtx
的名称,如果未指定名称则为 null。nameCtx
- 相对于指定name
参数的上下文,如果name
相对于默认初始上下文,则为 null。environment
- 用于创建状态工厂和对象状态的可能为空的环境。attrs
- 要与对象绑定的可能为空的属性。- 返回:
-
包含要绑定的对象和属性的非空 DirStateFactory.Result。如果没有状态工厂返回非空答案,则结果将包含具有原始属性的对象 (
obj
) 本身。 - 抛出:
NamingException
- 如果在使用工厂时遇到命名异常。如果工厂不希望使用其他工厂来尝试创建对象,则工厂应该只抛出异常。参见DirStateFactory.getStateToBind()
。- 自从:
- 1.3
- 参见:
- 它接受一个
-