模块 java.naming

类 DirectoryManager

java.lang.Object
javax.naming.spi.NamingManager
javax.naming.spi.DirectoryManager

public class DirectoryManager extends NamingManager
此类包含支持 DirContext 实现的方法。

此类是 NamingManager 的扩展。它包含供服务提供者使用的方法,用于访问对象工厂和状态工厂,以及用于获取支持联合的延续上下文。

DirectoryManager 对于多线程并发访问是安全的。

除非另有说明,否则传递给任何方法的 NameAttributes 或环境参数均归调用者所有。该实现不会修改对象或保留对它的引用,尽管它可能会保留对克隆或副本的引用。

自从:
1.3
参见:
  • 方法详情

    • 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 可能会使用这些属性来避免从目录中查找它们。
      • 尝试的对象工厂必须实现 ObjectFactoryDirObjectFactory 。如果它实现 DirObjectFactory ,则使用 DirObjectFactory.getObjectInstance(),否则使用 ObjectFactory.getObjectInstance()
      实现 DirContext 接口的服务提供商应该使用此方法,而不是 NamingManager.getObjectInstance()
      参数:
      refInfo - 要为其创建对象的可能为空的对象。
      name - 此对象相对于 nameCtx 的名称。指定名称是可选的;如果省略,name 应为空。
      nameCtx - 指定 name 参数的相关上下文。如果为 null,则 name 是相对于默认初始上下文的。
      environment - 用于创建对象工厂和对象的可能为 null 的环境。
      attrs - 与 refInfo 关联的可能为空的属性。这可能不是 refInfo 的完整属性集;您也许能够从目录中读取更多属性。
      返回:
      使用 refInfoattrs 创建的对象;或者 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 实例,其中包含要绑定的对象以及绑定附带的属性。对象或属性可以为空。
      • 尝试过的国有工厂必须各自实施 StateFactoryDirStateFactory 。如果它实现了 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
      参见: