public class DirectoryManager extends NamingManager
这个类是NamingManager的扩展名 。 它包含服务提供商用于访问对象工厂和状态工厂以及获取支持联合的连续上下文的方法。
DirectoryManager对多个线程的并发访问是安全的。
除非另有说明,否则传递给任何方法Name,Attributes,或环境参数由调用者所有。 实现不会修改对象或保留对它的引用,尽管它可以保留对克隆或副本的引用。
DirObjectFactory
, DirStateFactory
CPE
Modifier and Type | Method and Description |
---|---|
static DirContext |
getContinuationDirContext(CannotProceedException cpe)
创建一个上下文以继续执行
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)
当给定原始对象及其属性时,检索绑定对象的状态。
|
getContinuationContext, getInitialContext, getObjectInstance, getStateToBind, getURLContext, hasInitialContextFactoryBuilder, setInitialContextFactoryBuilder, setObjectFactoryBuilder
public static DirContext getContinuationDirContext(CannotProceedException cpe) throws NamingException
cpe
- 触发此继续的非空异常。
NamingException
- 如果发生命名异常。
NamingManager.getContinuationContext(CannotProceedException)
public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws 异常
此方法与NamingManager.getObjectInstance相同,但有以下差异:
refInfo
- 可以为其创建对象的空对象。
name
- 此对象的名称相对于nameCtx
。
指定名称是可选的;
如果省略,则name
应为null。
nameCtx
- 指定name
参数的上下文。
如果为null, name
是相对于默认的初始上下文。
environment
- 在创建对象工厂和对象时可能使用的空环境。
attrs
- 与refInfo相关联的可能的空属性。
这可能不是refInfo的完整属性集;
您可能可以从目录中读取更多属性。
refInfo
和attrs创建的对象;
或refInfo
如果对象不能由工厂创建。
NamingException
- 如果在尝试获取URL上下文时遇到命名异常,或者如果其中一个工厂引用了NamingException。
异常
- 如果其中一个访问的工厂引发异常,或者在加载和实例化工厂和对象类时遇到错误。
如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。
见DirObjectFactory.getObjectInstance() 。
NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
, DirObjectFactory
, DirObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
public static DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws NamingException
此方法类似于NamingManager.getStateToBind,除了以下区别:
有关如何确定要尝试的状态工厂列表的说明,请参阅NamingManager.getStateToBind()。
该方法返回的对象由调用者拥有。 实施不会随后修改。 它将包含同样由调用者拥有的新的Attributes对象或对原始attrs参数的引用。
obj
- 要获取状态绑定的非空对象。
name
- 相对于
nameCtx
的此对象的名称,如果未指定名称,则为null。
nameCtx
- 指定
name
参数的上下文,如果
name
相对于默认的初始上下文,则为null。
environment
- 用于创建状态工厂和对象状态的可能的空环境。
attrs
- 可能为null的与对象绑定的属性。
NamingException
- 如果在使用工厂时遇到命名异常。
如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。
见DirStateFactory.getStateToBind() 。
DirStateFactory
, DirStateFactory.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
, NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)