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 ObjectgetObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?, ?> environment, Attributes attrs) 为指定的对象、属性和环境创建一个对象的实例。static DirStateFactory.ResultgetStateToBind(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
- 参见:
- 它接受一个包含传递给
-