public class NamingManager extends Object
这类不能被实例化。它只有静态方法。
URL这一类的文档中提及指的是一个URL字符串由RFC 1738和RFC中定义的相关。这是任何字符串是否符合语法中所描述的,和不可能总是在java.net.url类或Web浏览器都有相应的支持。
namingmanager安全的多线程并发访问。
除非另有说明,一个Name或环境参数通过任何方法的调用方拥有。该实现将不会修改对象或保持引用它,虽然它可能会保留一个复制或复制的参考。
Modifier and Type | Field and Description |
---|---|
static String |
CPE
恒认为名称的环境属性,
getContinuationContext()商店的
CannotProceedException参数值。
|
Modifier and Type | Method and Description |
---|---|
static Context |
getContinuationContext(CannotProceedException cpe)
创建一个上下文,在该上下文中继续上下文操作。
|
static Context |
getInitialContext(Hashtable<?,?> env)
使用指定的环境属性创建初始上下文。
|
static Object |
getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment)
为指定的对象和环境创建一个对象的实例。
|
static Object |
getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment)
检索绑定的对象的状态。
|
static Context |
getURLContext(String scheme, Hashtable<?,?> environment)
为给定的网址计划的标识创建一个上下文。
|
static boolean |
hasInitialContextFactoryBuilder()
确定是否已设置初始上下文工厂生成器。
|
static void |
setInitialContextFactoryBuilder(InitialContextFactoryBuilder builder)
集initialcontextfactory Builder是建设者。
|
static void |
setObjectFactoryBuilder(ObjectFactoryBuilder builder)
的objectfactorybuilder决定政策时试图加载对象工厂。
|
public static final String CPE
该常数的值是“java。命名。SPI。cannotproceedexception”。
getContinuationContext(javax.naming.CannotProceedException)
,
Constant Field Values
public static void setObjectFactoryBuilder(ObjectFactoryBuilder builder) throws NamingException
建造者只能安装如果执行线程是允许的(由安全经理的checksetfactory()方法)去做。一旦安装,生成器无法被替换。
builder
-工厂建筑安装。如果为空,则没有安装生成器。
SecurityException
生成器无法安装安全的原因。
NamingException
生成器无法安装一个非安全相关的原因。
IllegalStateException
-如果一个工厂已经安装。
getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
,
ObjectFactory
,
ObjectFactoryBuilder
,
SecurityManager.checkSetFactory()
public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment) throws 异常
如果已安装了一个对象工厂生成器,它是用来创建一个创建对象的工厂的。否则,下面的规则被用来创建对象:
refInfo
是Reference
或Referenceable
含工厂类的名字,使用指定的工厂创建的对象。如果工厂不能创造收益refInfo
。在JDK 1.1,如果工厂类必须从一个位置引用中指定加载,一个SecurityManager必须已经安装或工厂的建立将失败。创建工厂时遇到异常,它将被传递给调用方。refInfo
。如果在创建对象时遇到异常,则向调用方传递异常。服务提供商,实现DirContext接口应该使用DirectoryManager.getObjectInstance(),不是这个方法。服务提供商,只实现Context接口应使用这种方法。
注意,对象工厂(实现化接口的对象)必须是公共的,必须有一个公共构造函数接受任何参数。
的name
和nameCtx
参数可用于指定创建的对象的名称。name
是对象的名字,相对于背景nameCtx
。这个信息可以对对象工厂或对象实现的有用。如果有几个可能的情况下,可以命名的对象-因为往往是这样的情况-这是向调用方选择一个。一个很好的经验法则是选择“最深”的上下文。如果nameCtx
是空的,name
相对于默认初始上下文。如果没有被指定,这个name
参数应为。
refInfo
-它创建一个对象可能的空对象。
name
-此对象的名称相对
nameCtx
。指定一个名称是可选的;如果是省略,
name
应为。
nameCtx
的上下文相关的
name
参数指定。如果为空,
name
相对于默认初始上下文。
environment
-用于对象的工厂和对象的创建可能的空环境。
refInfo
创建一个对象;或
refInfo
如果对象不能使用上述算法创建的。
NamingException
-如果在试图得到一个URL命名上下文中遇到的一个例外,如果一个工厂访问抛出一个namingexception。
异常
-如果一个工厂访问抛出一个异常,如果出现了一个错误的同时,加载和实例化的工厂和对象类。如果一个工厂不希望其他工厂尝试创建一个对象,则应该只抛出一个异常。看到getobjectinstance()化。
getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
,
ObjectFactory
,
ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
public static Context getURLContext(String scheme, Hashtable<?,?> environment) throws NamingException
产生的背景是解决方案scheme
网址。由此产生的上下文不绑定到一个特定的网址。它能够处理任意的网址与指定的计划。
对创建上下文工厂类名的命名约定方案idurlcontextfactory(例如“ftpurlcontextfactory”为“ftp”方案ID),在指定的包装如下。的Context.URL_PKG_PREFIXES环境产权(其中可能包含从Applet参数值的系统性能,或应用程序资源文件)包含冒号分隔的包前缀列表。属性中的每个包前缀都用指定的顺序加载到工厂类中。默认的包前缀是“COM。太阳。JNDI。URL”(如果指定包的工作,没有这个默认的被试)。完整的包名是使用包前缀构造的,与该方案的编号连接。
例如,如果方案ID是“目录”,和“Context.URL_PKG_PREFIXES属性包含COM组件。组件:COM。奇才。JNDI命名”,经理会尝试加载以下类实例化直到成功:
如果一个工厂被实例化时,它调用下面的参数产生的产生的背景。
factory.getObjectInstance(null, environment);
例如,调用getobjectinstance()如上所示在LDAP URL上下文工厂将返回一个上下文,可以解决(如LDAP URL目录:/ / LDAP。奇才。COM / O =天才,C =我们”、“LDAP:/ / LDAP。密歇根大学。教育/ O =密歇根大学,C =我们”,…)。
注意,对象工厂(实现化接口的对象)必须是公共的,必须有一个公共构造函数接受任何参数。
scheme
-通过上下文支持URL的非零方案ID。
environment
-可能的空的环境属性作为对象的工厂和情境的创设。
scheme
URL上下文;
null
如果创建上下文工厂没有发现。
NamingException
如果发生异常而创建的命名上下文。
getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
,
ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
public static Context getInitialContext(Hashtable<?,?> env) throws NamingException
如果一个initialcontextfactorybuilder已安装,它是用来创建初始上下文创建工厂。否则,该类中指定的Context.INITIAL_CONTEXT_FACTORY环境属性用于。注意,初始上下文工厂(实现initialcontextfactory接口的对象)必须是公共的,必须有一个公共构造函数接受任何参数。
env
创建的情况下使用时可能的空环境性能。
NoInitialContextException
-如果
Context.INITIAL_CONTEXT_FACTORY找不到属性或名称不存在的类或类不能被实例化,如果初始上下文,不能因其他原因造成。
NamingException
-如果遇到其他一些命名的例外。
InitialContext
,
InitialDirContext
public static void setInitialContextFactoryBuilder(InitialContextFactoryBuilder builder) throws NamingException
只有当安全管理器允许执行线程这样做时,生成器才能被安装。一旦安装,生成器无法被替换。
builder
-初始上下文工厂建筑安装。如果为空,则没有设置生成器。
SecurityException
生成器无法安装安全的原因。
NamingException
生成器无法安装一个非安全相关的原因。
IllegalStateException
如果Builder是以前安装的。
hasInitialContextFactoryBuilder()
,
SecurityManager.checkSetFactory()
public static boolean hasInitialContextFactoryBuilder()
setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)
public static Context getContinuationContext(CannotProceedException cpe) throws NamingException
在一个跨越多个命名空间名称的操作,从一个命名系统的背景下,可能需要通过运行到下一个命名系统。上下文实现是通过首先构造一个包含信息精确CannotProceedException
多远了。然后得到一个延续文脉从JNDI调用getContinuationContext
。上下文实现应通过调用在继续上下文上的相同操作来恢复上下文操作,使用尚未解决的名称的剩余部分。
在使用的cpe参数,此方法更新通过设置属性的值,CPE cpe对象相关联的环境。这个属性将被延续文脉继承,并且可以通过上下文的服务提供商适用该例外的领域。
cpe
-非空的异常触发的延续。
NamingException
命名。
public static Object getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws NamingException
服务提供商,实现DirContext接口应该使用DirectoryManager.getStateToBind(),不是这个方法。服务提供商,只实现Context接口应使用这种方法。
该方法在环境中的性能Context.STATE_FACTORIES属性使用指定的国有工厂,并与nameCtx供应商资源文件,按顺序。此属性的值是一个正在尝试的工厂级名称的结肠分离列表,并且第一个成功返回对象的状态的第一个列表是一个使用过的。如果没有对象的状态可以以这种方式检索,返回对象本身。如果在检索状态时遇到异常,则向调用方传递异常。
值得注意的是,一个国家的工厂(实现statefactory接口的对象)必须是公共的,必须有一个公共构造函数接受任何参数。
的name
和nameCtx
参数可用于指定创建的对象的名称。看到“名称和上下文参数”的细节在ObjectFactory.getObjectInstance()
描述。
该方法可以返回一个Referenceable对象。服务提供商获取该对象可以选择将它直接,或提取参考(使用Referenceable.getReference())与存储,而不是。
obj
-非空对象,获得国家绑定。
name
-此对象的名称相对
nameCtx
,或null,如果没有指定名称。
nameCtx
的上下文相关的
name
参数指定,或null如果
name
相对于默认初始上下文。
environment
-可能的空环境中使用的创作状态的工厂和对象的状态。
NamingException
-如果一个工厂访问抛出一个异常,如果出现了一个错误的同时,加载和实例化的工厂和对象类。如果一个工厂不希望其他工厂尝试创建一个对象,则应该只抛出一个异常。看到
StateFactory.getStateToBind()。
StateFactory
,
StateFactory.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
,
DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.