java.lang.Object
javax.naming.spi.NamingManager
javax.naming.spi.DirectoryManager
这个类包含支持
DirContext
实现的方法。
这个类是NamingManager
的扩展。它包含供服务提供者使用的方法,用于访问对象工厂和状态工厂,并获取支持联合的继续上下文。
DirectoryManager
可以安全地被多个线程并发访问。
除非另有说明,传递给任何方法的Name
、Attributes
或环境参数都由调用者拥有。实现不会修改对象或保留对其的引用,尽管它可能会保留对克隆或副本的引用。
- 自从:
- 1.3
- 参见:
-
Field Summary
Fields declared in class javax.naming.spi.NamingManager
CPE
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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) 在给定原始对象和其属性时,检索要绑定的对象的状态。Methods declared in class javax.naming.spi.NamingManager
getContinuationContext, getInitialContext, getObjectInstance, getStateToBind, getURLContext, hasInitialContextFactoryBuilder, setInitialContextFactoryBuilder, setObjectFactoryBuilder
-
Method Details
-
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
应为null。 -
nameCtx
- 指定name
参数的上下文。如果为null,则name
相对于默认初始上下文。 -
environment
- 用于创建对象工厂和对象的可能为空的环境。 -
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
,除了以下差异:- 它接受一个包含传递给
DirContext.bind()
方法的属性的Attributes
参数。 - 返回一个非空的
DirStateFactory.Result
实例,其中包含要绑定的对象以及要与绑定一起使用的属性。对象或属性可能为null。 - 尝试的状态工厂必须每个实现
StateFactory
或DirStateFactory
。如果它实现了DirStateFactory
,则调用DirStateFactory.getStateToBind()
;否则,调用StateFactory.getStateToBind()
。
DirContext
接口的服务提供者应该使用此方法,而不是NamingManager.getStateToBind()
。有关如何确定要尝试的状态工厂列表的描述,请参阅NamingManager.getStateToBind()。
此方法返回的对象由调用者拥有。实现不会随后修改它。它将包含一个新的同样由调用者拥有的
Attributes
对象,或者对原始attrs
参数的引用。- 参数:
-
obj
- 要获取要绑定状态的非空对象。 -
name
- 相对于nameCtx
的此对象的名称,如果未指定名称,则为null。 -
nameCtx
- 指定name
参数的上下文,如果name
相对于默认初始上下文,则为null。 -
environment
- 用于创建状态工厂和对象状态的可能为空环境。 -
attrs
- 要与对象绑定的可能为空的Attributes。 - 返回:
-
包含要绑定的对象和属性的非空DirStateFactory.Result。如果没有状态工厂返回非空答案,则结果将包含对象(
obj
)本身和原始属性。 - 抛出:
-
NamingException
- 如果在使用工厂时遇到命名异常。如果工厂不希望使用其他工厂尝试创建对象,则工厂应该抛出异常。请参阅DirStateFactory.getStateToBind()
。 - 自从:
- 1.3
- 参见:
- 它接受一个包含传递给
-