JavaTM 2 Platform
Standard Ed. 6

javax.naming
類別 InitialContext

java.lang.Object
  繼承者 javax.naming.InitialContext
所有已實作的介面:
Context
直接已知子類別:
InitialDirContext

public class InitialContext
extends Object
implements Context

此類別是執行命名操作的初始上下文。

所有命名操作都相對於某一上下文。該初始上下文實作 Context 介面並提供解析名稱的起始點。

在建構初始上下文時,使用傳遞給建構子的環境參數中以及所有應用程序資源檔案中定義的屬性初始化其環境。此外,可以將少數標準 JNDI 屬性指定為系統屬性或 applet 參數(通過使用 Context.APPLET)。這些特殊屬性列於 ContextLdapContext 介面文檔的欄位詳細資訊部分。

JNDI 通過按順序合併取自以下兩個源的值來確定每個屬性值:

  1. 建構子的環境參數、(適當屬性的)applet 參數,以及系統屬性中最先出現的屬性。
  2. 應用程序資源檔案 (jndi.properties)。
對於同時存在於兩個源或多個應用程序資源檔案中的每個屬性,用以下方式確定屬性值。如果該屬性是指定 JNDI 處理器列表的標準 JNDI 屬性之一(參見 Context),則所有值都被串聯成一個以冒號分隔的列表。對於其他屬性,只使用最先找到的值。

初始上下文實作是在運行時確定的。預設策略使用環境屬性 "java.naming.factory.initial",該屬性包含初始上下文處理器的類別名稱。解析 URL 字元串時產生此策略的一個異常,如下所述。

在將 URL 字元串(一個 scheme_id:rest_of_name 形式的 String)作為名稱參數傳遞給任一方法時,將定位處理該方案的一個 URL 上下文處理器,並將它用於解析該 URL。如果沒有找到這樣的處理器,則使用由 "java.naming.factory.initial" 指定的初始上下文。類似地,當將第一個元件是 URL 字元串的 CompositeName 物件作為名稱參數傳遞給任一方法時,將定位一個 URL 上下文處理器並將它用於解析第一個名稱元件。有關如何定位 URL 上下文處理器的描述,請參見 NamingManager.getURLContext()

這一定位初始上下文和 URL 上下文處理器的預設策略可以通過調用 NamingManager.setInitialContextFactoryBuilder() 覆寫。

當無法實例化初始上下文時,將拋出 NoInitialContextException。此異常可以在與 InitialContext 進行的任何交互期間拋出,而不僅僅是在建構 InitialContext 時。例如,初始上下文的實作可能僅當在其上調用實際方法時惰性獲取上下文。當確定初始上下文存在時,應用程序不應該對它有任何依賴性。

當環境屬性 "java.naming.factory.initial" 為非 null 值時,InitialContext 建構子將試著創建在其中指定的初始上下文。此時,如果遇到問題,所涉及的初始上下文處理器可能拋出異常。不過,在驗證並向初始上下文使用者指示所有與環境屬性或連接有關的問題時,這將與提供者的實作有關。提供者也可以以延遲方式做到這一點:延遲到在上下文上執行某一操作時;在更急切的情況下,延遲到建構上下文時。

InitialContext 實例對多個執行緒的共時存取不同步。對於每個執行緒都操作一個不同 InitialContext 實例的多個執行緒而言,無需實作同步。需要共時地存取單個 InitialContext 實例的執行緒應該在它們之間實作同步並提供必需的鎖定。

從以下版本開始:
JNDI 1.1 / Java 2 Platform, Standard Edition, v 1.3
另請參見:
Context, NamingManager.setInitialContextFactoryBuilder

欄位摘要
protected  Context defaultInitCtx
          該欄位保存調用 NamingManager.getInitialContext() 的結果。
protected  boolean gotDefault
          該欄位指示是否已通過調用 NamingManager.getInitialContext() 獲得了初始上下文。
protected  Hashtable<Object,Object> myProps
          與此 InitialContext 關聯的環境。
 
從介面 javax.naming.Context 繼承的欄位
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
 
建構子摘要
  InitialContext()
          建構一個初始上下文。
protected InitialContext(boolean lazy)
          建構一個帶有不進行初始化選項的初始上下文。
  InitialContext(Hashtable<?,?> environment)
          使用所提供的環境建構一個初始上下文。
 
方法摘要
 Object addToEnvironment(String propName, Object propVal)
          將一個新環境屬性添加到此上下文的環境中。
 void bind(Name name, Object obj)
          將名稱綁定到物件。
 void bind(String name, Object obj)
          將名稱綁定到物件。
 void close()
          關閉此上下文。
 Name composeName(Name name, Name prefix)
          將此上下文的名稱與相對於此上下文的名稱組合。
 String composeName(String name, String prefix)
          將此上下文的名稱與相對於此上下文的名稱組合。
 Context createSubcontext(Name name)
          創建並綁定一個新上下文。
 Context createSubcontext(String name)
          創建並綁定一個新上下文。
 void destroySubcontext(Name name)
          銷毀指定上下文,並將它從名稱空間中移除。
 void destroySubcontext(String name)
          銷毀指定上下文,並將它從名稱空間中移除。
static
<T> T
doLookup(Name name)
          獲取指定物件的靜態方法。
static
<T> T
doLookup(String name)
          獲取指定物件的靜態方法。
protected  Context getDefaultInitCtx()
          通過調用 NamingManager.getInitialContext() 獲取初始上下文,並將它快取記憶體在 defaultInitCtx 中。
 Hashtable<?,?> getEnvironment()
          檢索對此上下文有效的環境。
 String getNameInNamespace()
          在此上下文自己的名稱空間中檢索其完全名稱。
 NameParser getNameParser(Name name)
          檢索與指定上下文關聯的解析器。
 NameParser getNameParser(String name)
          檢索與指定上下文關聯的解析器。
protected  Context getURLOrDefaultInitCtx(Name name)
          獲取用來解析 name 的上下文。
protected  Context getURLOrDefaultInitCtx(String name)
          獲取用來解析字元串名稱 name 的上下文。
protected  void init(Hashtable<?,?> environment)
          使用所提供的環境初始化初始上下文。
 NamingEnumeration<NameClassPair> list(Name name)
          列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件的類別名稱。
 NamingEnumeration<NameClassPair> list(String name)
          列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件的類別名稱。
 NamingEnumeration<Binding> listBindings(Name name)
          列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件。
 NamingEnumeration<Binding> listBindings(String name)
          列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件。
 Object lookup(Name name)
          檢索指定的物件。
 Object lookup(String name)
          檢索指定的物件。
 Object lookupLink(Name name)
          按照除名稱的最終原子元件以外的連接檢索指定物件。
 Object lookupLink(String name)
          按照除名稱的最終原子元件以外的連接檢索指定物件。
 void rebind(Name name, Object obj)
          將名稱綁定到物件,覆寫任何現有綁定。
 void rebind(String name, Object obj)
          將名稱綁定到物件,覆寫所有現有綁定。
 Object removeFromEnvironment(String propName)
          從此上下文的環境中移除一個環境屬性。
 void rename(Name oldName, Name newName)
          將一個新名稱綁定到已經被綁定到某一舊名稱的物件上,並取消對舊名稱的綁定。
 void rename(String oldName, String newName)
          將一個新名稱綁定到已經被綁定到某一舊名稱的物件上,並取消對舊名稱的綁定。
 void unbind(Name name)
          取消對指定物件的綁定。
 void unbind(String name)
          取消對指定物件的綁定。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

myProps

protected Hashtable<Object,Object> myProps
與此 InitialContext 關聯的環境。它被初始化為 null,並由接受環境作為參數的建構子或 init() 方法更新。

另請參見:
addToEnvironment(java.lang.String, java.lang.Object), removeFromEnvironment(java.lang.String), getEnvironment()

defaultInitCtx

protected Context defaultInitCtx
該欄位保存調用 NamingManager.getInitialContext() 的結果。它由 getDefaultInitCtx() 在第一次調用 getDefaultInitCtx() 時設置。getDefaultInitCtx() 的後續調用返回 defaultInitCtx 的值。

另請參見:
getDefaultInitCtx()

gotDefault

protected boolean gotDefault
該欄位指示是否已通過調用 NamingManager.getInitialContext() 獲得了初始上下文。如果為 true,則其結果保存在 defaultInitCtx 中。

建構子詳細資訊

InitialContext

protected InitialContext(boolean lazy)
                  throws NamingException
建構一個帶有不進行初始化選項的初始上下文。如果子類別在調用 InitialContext 建構子時仍然未知環境屬性的值,則可以在其中使用此建構子。子類別的建構子將調用此建構子,計算環境的值,然後在返回之前調用 init()

參數:
lazy - 為 true 表示不初始化該初始上下文;為 false 等效於調用 new InitialContext()
拋出:
NamingException - 如果遇到命名異常
從以下版本開始:
1.3
另請參見:
init(Hashtable)

InitialContext

public InitialContext()
               throws NamingException
建構一個初始上下文。不提供環境屬性。與 new InitialContext(null) 等效。

拋出:
NamingException - 如果遇到命名異常
另請參見:
InitialContext(Hashtable)

InitialContext

public InitialContext(Hashtable<?,?> environment)
               throws NamingException
使用所提供的環境建構一個初始上下文。這些環境屬性已在類別描述中討論。

此建構子不會修改 environment 或保存一個對它的參考,但可能保存一個副本。

參數:
environment - 用來創建初始上下文的環境。null 指示一個空環境。
拋出:
NamingException - 如果遇到命名異常
方法詳細資訊

init

protected void init(Hashtable<?,?> environment)
             throws NamingException
使用所提供的環境初始化初始上下文。這些環境屬性已在類別描述中討論。

此方法將修改 environment 並保存一個對它的參考。調用者可能不再修改它。

參數:
environment - 用來創建初始上下文的環境。null 指示一個空環境。
拋出:
NamingException - 如果遇到命名異常
從以下版本開始:
1.3
另請參見:
InitialContext(boolean)

doLookup

public static <T> T doLookup(Name name)
                  throws NamingException
獲取指定物件的靜態方法。 此方法是一個快捷方法,等效於調用:

InitialContext ic = new InitialContext(); Object obj = ic.lookup();

如果 name 為空,則返回此上下文的一個新實例(該實例表示與此上下文相同的命名上下文,但可以獨立地修改其環境,並可以共時地存取)。

參數:
name - 要尋找的物件名稱
返回:
綁定到 name 的物件
拋出:
NamingException - 如果遇到命名異常
從以下版本開始:
1.6
另請參見:
doLookup(String), lookup(Name)

doLookup

public static <T> T doLookup(String name)
                  throws NamingException
獲取指定物件的靜態方法。 有關詳細資訊請參見 doLookup(Name)

參數:
name - 要尋找的物件名稱
返回:
綁定到 name 的物件
拋出:
NamingException - 如果遇到命名異常
從以下版本開始:
1.6

getDefaultInitCtx

protected Context getDefaultInitCtx()
                             throws NamingException
通過調用 NamingManager.getInitialContext() 獲取初始上下文,並將它快取記憶體在 defaultInitCtx 中。設置 gotDefault,說明已執行過此操作。

返回:
快取記憶體的非 null 初始上下文。
拋出:
NoInitialContextException - 如果無法找到初始上下文。
NamingException - 如果遇到命名異常。

getURLOrDefaultInitCtx

protected Context getURLOrDefaultInitCtx(String name)
                                  throws NamingException
獲取用來解析字元串名稱 name 的上下文。如果 name 名稱是一個 URL 字元串,則試著定位一個用於該字元串的 URL 上下文。如果沒有找到這樣的上下文,或者 name 不是一個 URL 字元串,則返回 getDefaultInitCtx()

有關子類別應該如何使用此方法的描述,請參見 getURLOrDefaultInitCtx(Name)。

參數:
name - 非 null 名稱,將為其獲得上下文。
返回:
用於 name 的 URL 上下文或者快取記憶體的初始上下文。結果不能為 null。
拋出:
NoInitialContextException - 如果無法找到初始上下文。
NamingException - 如果遇到命名異常。
另請參見:
NamingManager.getURLContext(java.lang.String, java.util.Hashtable)

getURLOrDefaultInitCtx

protected Context getURLOrDefaultInitCtx(Name name)
                                  throws NamingException
獲取用來解析 name 的上下文。如果 name 名稱的第一個元件是一個 URL 字元串,則試著尋找一個用於該字元串的 URL 上下文。如果沒有找到這樣的上下文,或者 name 的第一個元件不是一個 URL 字元串,則返回 getDefaultInitCtx()

在創建 InitialContext 的子類別時,按以下方式使用此方法。定義一個使用此方法的新方法來獲得所需子類別的初始上下文。

 protected XXXContext getURLOrDefaultInitXXXCtx(Name name) 
 throws NamingException {
  Context answer = getURLOrDefaultInitCtx(name);
  if (!(answer instanceof XXXContext)) {
    if (answer == null) {
            throw new NoInitialContextException();
    } else {
            throw new NotContextException("Not an XXXContext");
    }
        }
        return (XXXContext)answer;
 }
 
當為子類別中的新方法提供實作時,使用這個新定義的方法獲取初始上下文。

 public Object XXXMethod1(Name name, ...) {
        throws NamingException {
    return getURLOrDefaultInitXXXCtx(name).XXXMethod1(name, ...);
 }
 

參數:
name - 非 null 名稱,將為其獲取上下文。
返回:
用於 name 的 URL 上下文或者快取記憶體的初始上下文。結果不能為 null。
拋出:
NoInitialContextException - 如果無法找到初始上下文。
NamingException - 如果遇到命名異常。
另請參見:
NamingManager.getURLContext(java.lang.String, java.util.Hashtable)

lookup

public Object lookup(String name)
              throws NamingException
從介面 Context 複製的描述
檢索指定的物件。有關詳細資訊請參見 Context.lookup(Name)

指定者:
介面 Context 中的 lookup
參數:
name - 要查詢的物件的名稱
返回:
綁定到 name 的物件
拋出:
NamingException - 如果遇到命名異常

lookup

public Object lookup(Name name)
              throws NamingException
從介面 Context 複製的描述
檢索指定的物件。如果 name 為空,則返回此上下文的一個新實例(該實例表示與此上下文相同的命名上下文,但其環境可以獨立地進行修改,而且可以共時存取)。

指定者:
介面 Context 中的 lookup
參數:
name - 要查詢的物件的名稱
返回:
綁定到 name 的物件
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.lookup(String), Context.lookupLink(Name)

bind

public void bind(String name,
                 Object obj)
          throws NamingException
從介面 Context 複製的描述
將名稱綁定到物件。有關詳細資訊請參見 Context.bind(Name, Object)

指定者:
介面 Context 中的 bind
參數:
name - 要綁定的名稱,不可以為空
obj - 要綁定的物件,可能為 null
拋出:
NameAlreadyBoundException - 如果已經綁定了 name
InvalidAttributesException - 如果物件不支持所有強制屬性
NamingException - 如果遇到命名異常

bind

public void bind(Name name,
                 Object obj)
          throws NamingException
從介面 Context 複製的描述
將名稱綁定到物件。所有中間上下文和目標上下文(由該名稱最終原子元件以外的其他所有元件指定)都必須已經存在。

指定者:
介面 Context 中的 bind
參數:
name - 要綁定的名稱,不可以為空
obj - 要綁定的物件,可能為 null
拋出:
NameAlreadyBoundException - 如果已經綁定了 name
InvalidAttributesException - 如果物件不支持所有強制屬性
NamingException - 如果遇到命名異常
另請參見:
Context.bind(String, Object), Context.rebind(Name, Object), DirContext.bind(Name, Object, javax.naming.directory.Attributes)

rebind

public void rebind(String name,
                   Object obj)
            throws NamingException
從介面 Context 複製的描述
將名稱綁定到物件,覆寫所有現有綁定。有關詳細資訊請參見 Context.rebind(Name, Object)

指定者:
介面 Context 中的 rebind
參數:
name - 要綁定的名稱,不可以為空
obj - 要綁定的物件,可能為 null
拋出:
InvalidAttributesException - 如果物件不支持所有強制屬性
NamingException - 如果遇到命名異常

rebind

public void rebind(Name name,
                   Object obj)
            throws NamingException
從介面 Context 複製的描述
將名稱綁定到物件,覆寫任何現有綁定。所有中間上下文和目標上下文(由該名稱最終原子元件以外的其他所有元件指定)都必須已經存在。

如果該物件是一個 DirContext,則使用該物件的屬性替換與該名稱關聯的所有現有屬性。否則,與該名稱關聯的所有現有屬性保持不變。

指定者:
介面 Context 中的 rebind
參數:
name - 要綁定的名稱,不可以為空
obj - 要綁定的物件,可能為 null
拋出:
InvalidAttributesException - 如果物件不支持所有強制屬性
NamingException - 如果遇到命名異常
另請參見:
Context.rebind(String, Object), Context.bind(Name, Object), DirContext.rebind(Name, Object, javax.naming.directory.Attributes), DirContext

unbind

public void unbind(String name)
            throws NamingException
從介面 Context 複製的描述
取消對指定物件的綁定。有關詳細資訊請參見 Context.unbind(Name)

指定者:
介面 Context 中的 unbind
參數:
name - 要取消綁定的名稱,不能為空
拋出:
NameNotFoundException - 如果不存在中間上下文
NamingException - 如果遇到命名異常

unbind

public void unbind(Name name)
            throws NamingException
從介面 Context 複製的描述
取消對指定物件的綁定。從目標上下文中移除名為 name 的最終原子名稱,目標上下文由 name 的最終原子部分以外的所有名稱指定。

此方法是冪等的 (idempotent)。即使最終原子名稱沒有綁定在目標上下文中,該操作也能成功,但如果不存在任何中間上下文,則將拋出 NameNotFoundException

所有與該名稱關聯的屬性都被移除。不更改中間上下文。

指定者:
介面 Context 中的 unbind
參數:
name - 要取消綁定的名稱,不能為空
拋出:
NameNotFoundException - 如果不存在中間上下文
NamingException - 如果遇到命名異常
另請參見:
Context.unbind(String)

rename

public void rename(String oldName,
                   String newName)
            throws NamingException
從介面 Context 複製的描述
將一個新名稱綁定到已經被綁定到某一舊名稱的物件上,並取消對舊名稱的綁定。有關詳細資訊請參見 Context.rename(Name, Name)

指定者:
介面 Context 中的 rename
參數:
oldName - 現有綁定的名稱,不能為空
newName - 新綁定的名稱,不能為空
拋出:
NameAlreadyBoundException - 如果已經綁定了 newName
NamingException - 如果遇到命名異常

rename

public void rename(Name oldName,
                   Name newName)
            throws NamingException
從介面 Context 複製的描述
將一個新名稱綁定到已經被綁定到某一舊名稱的物件上,並取消對舊名稱的綁定。兩個名稱都是相對於此上下文的。所有與舊名稱關聯的屬性都改為與新名稱關聯。不更改舊名稱的中間上下文。

指定者:
介面 Context 中的 rename
參數:
oldName - 現有綁定的名稱,不能為空
newName - 新綁定的名稱,不能為空
拋出:
NameAlreadyBoundException - 如果已經綁定了 newName
NamingException - 如果遇到命名異常
另請參見:
Context.rename(String, String), Context.bind(Name, Object), Context.rebind(Name, Object)

list

public NamingEnumeration<NameClassPair> list(String name)
                                      throws NamingException
從介面 Context 複製的描述
列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件的類別名稱。有關詳細資訊請參見 Context.list(Name)

指定者:
介面 Context 中的 list
參數:
name - 要列出的上下文的名稱
返回:
名稱和此上下文中的綁定的類別名稱所組成的列舉。每個列舉元素都屬於 NameClassPair 型別。
拋出:
NamingException - 如果遇到命名異常

list

public NamingEnumeration<NameClassPair> list(Name name)
                                      throws NamingException
從介面 Context 複製的描述
列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件的類別名稱。不包括任何子上下文的內容。

如果將某一綁定添加到此上下文,或者從此上下文中移除某個綁定,則對以前返回的列舉的影響是不確定的。

指定者:
介面 Context 中的 list
參數:
name - 要列出的上下文的名稱
返回:
名稱和此上下文中的綁定的類別名稱所組成的列舉。每個列舉元素都屬於 NameClassPair 型別。
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.list(String), Context.listBindings(Name), NameClassPair

listBindings

public NamingEnumeration<Binding> listBindings(String name)
                                        throws NamingException
從介面 Context 複製的描述
列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件。有關詳細資訊請參見 Context.listBindings(Name)

指定者:
介面 Context 中的 listBindings
參數:
name - 要列出的上下文的名稱
返回:
此上下文中的綁定所組成的列舉。每個列舉元素都屬於 Binding 型別。
拋出:
NamingException - 如果遇到命名異常

listBindings

public NamingEnumeration<Binding> listBindings(Name name)
                                        throws NamingException
從介面 Context 複製的描述
列舉綁定在指定上下文中的名稱,以及綁定到這些名稱的物件。不包括任何子上下文的內容。

如果將某一綁定添加到此上下文,或者從此上下文中移除某個綁定,則對以前返回的列舉的影響是不確定的。

指定者:
介面 Context 中的 listBindings
參數:
name - 要列出的上下文的名稱
返回:
此上下文中的綁定所組成的列舉。每個列舉元素都屬於 Binding 型別。
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.listBindings(String), Context.list(Name), Binding

destroySubcontext

public void destroySubcontext(String name)
                       throws NamingException
從介面 Context 複製的描述
銷毀指定上下文,並將它從名稱空間中移除。有關詳細資訊請參見 Context.destroySubcontext(Name)

指定者:
介面 Context 中的 destroySubcontext
參數:
name - 要銷毀的上下文的名稱,不能為空
拋出:
NameNotFoundException - 如果不存在中間上下文
NotContextException - 如果該名稱被綁定,但它沒有指定一個上下文,或者它沒有指定適當型別的上下文
ContextNotEmptyException - 如果指定的上下文不為空
NamingException - 如果遇到命名異常

destroySubcontext

public void destroySubcontext(Name name)
                       throws NamingException
從介面 Context 複製的描述
銷毀指定上下文,並將它從名稱空間中移除。所有與該名稱關聯的屬性也被移除。不銷毀中間上下文。

此方法是冪等的。即使最終原子名稱沒有綁定在目標上下文中,該操作也能成功,但如果不存在任何中間上下文,則將拋出 NameNotFoundException

在聯合命名系統中,取自某一命名系統的上下文可以綁定到另一個命名系統中的名稱上。隨後可以使用復合名稱在外部上下文 (foreign context) 中查詢和執行操作。不過,試圖使用此復合名稱銷毀上下文將失敗並拋出 NotContextException,因為外部上下文不是綁定該復合名稱的上下文的子上下文。改為使用 unbind() 移除外部上下文的綁定。銷毀外部上下文需要對取自該外部上下文的“本機”命名系統的上下文執行 destroySubcontext()

指定者:
介面 Context 中的 destroySubcontext
參數:
name - 要銷毀的上下文的名稱,不能為空
拋出:
NameNotFoundException - 如果不存在中間上下文
NotContextException - 如果該名稱被綁定,但它沒有指定一個上下文,或者它沒有指定適當型別的上下文
ContextNotEmptyException - 如果指定的上下文不為空
NamingException - 如果遇到命名異常
另請參見:
Context.destroySubcontext(String)

createSubcontext

public Context createSubcontext(String name)
                         throws NamingException
從介面 Context 複製的描述
創建並綁定一個新上下文。有關詳細資訊請參見 Context.createSubcontext(Name)

指定者:
介面 Context 中的 createSubcontext
參數:
name - 要創建的上下文的名稱,不能為空
返回:
新創建的上下文。
拋出:
NameAlreadyBoundException - 如果已經綁定了 name
InvalidAttributesException - 如果創建子上下文需要指定強制屬性
NamingException - 如果遇到命名異常

createSubcontext

public Context createSubcontext(Name name)
                         throws NamingException
從介面 Context 複製的描述
創建並綁定一個新上下文。使用給定名稱創建一個新上下文,並將它綁定在目標上下文中(由該名稱最終原子元件以外的所有名稱指定)。所有中間上下文和目標上下文都必須已經存在。

指定者:
介面 Context 中的 createSubcontext
參數:
name - 要創建的上下文的名稱,不能為空
返回:
新創建的上下文。
拋出:
NameAlreadyBoundException - 如果已經綁定了 name
InvalidAttributesException - 如果創建子上下文需要指定強制屬性
NamingException - 如果遇到命名異常
另請參見:
Context.createSubcontext(String), DirContext.createSubcontext(javax.naming.Name, javax.naming.directory.Attributes)

lookupLink

public Object lookupLink(String name)
                  throws NamingException
從介面 Context 複製的描述
按照除名稱的最終原子元件以外的連接檢索指定物件。有關詳細資訊請參見 Context.lookupLink(Name)

指定者:
介面 Context 中的 lookupLink
參數:
name - 要查詢的物件的名稱
返回:
綁定到 name 的物件不遵從最終連接(如果有)
拋出:
NamingException - 如果遇到命名異常

lookupLink

public Object lookupLink(Name name)
                  throws NamingException
從介面 Context 複製的描述
按照除名稱的最終原子元件以外的連接檢索指定物件。如果綁定到 name 的物件不是一個連接,則返回該物件本身。

指定者:
介面 Context 中的 lookupLink
參數:
name - 要查詢的物件的名稱
返回:
綁定到 name 的物件不遵從最終連接(如果有)。
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.lookupLink(String)

getNameParser

public NameParser getNameParser(String name)
                         throws NamingException
從介面 Context 複製的描述
檢索與指定上下文關聯的解析器。有關詳細資訊請參見 Context.getNameParser(Name)

指定者:
介面 Context 中的 getNameParser
參數:
name - 從中獲得解析器的上下文的名稱
返回:
可以將組合名稱解析成其原子元件的名稱解析器
拋出:
NamingException - 如果遇到命名異常

getNameParser

public NameParser getNameParser(Name name)
                         throws NamingException
從介面 Context 複製的描述
檢索與指定上下文關聯的解析器。在聯合名稱空間中,不同的命名系統將以不同的方式解析名稱。此方法允許應用程序使用特定命名系統的命名約定獲得用來將名稱解析成其原子元件的解析器。在任意一個命名系統中,由此方法返回的 NameParser 物件必須相等(可使用 equals() 進行測試)。

指定者:
介面 Context 中的 getNameParser
參數:
name - 從中獲得解析器的上下文的名稱
返回:
可以將組合名稱解析成其原子元件的名稱解析器
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.getNameParser(String), CompoundName

composeName

public String composeName(String name,
                          String prefix)
                   throws NamingException
將此上下文的名稱與相對於此上下文的名稱組合。因為絕不能相對於除本身以外的任何上下文命名初始上下文,所以 prefix 參數的值必須是一個空名稱 ("")。

指定者:
介面 Context 中的 composeName
參數:
name - 相對於此上下文的名稱
prefix - 此上下文相對於其一個祖先的名稱
返回:
prefixname 的組合
拋出:
NamingException - 如果遇到命名異常

composeName

public Name composeName(Name name,
                        Name prefix)
                 throws NamingException
將此上下文的名稱與相對於此上下文的名稱組合。因為絕不能相對於除本身以外的任何上下文命名初始上下文,所以 prefix 參數的值必須是一個空名稱 ("")。

指定者:
介面 Context 中的 composeName
參數:
name - 相對於此上下文的名稱
prefix - 此上下文相對於其一個祖先的名稱
返回:
prefixname 的組合
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.composeName(String, String)

addToEnvironment

public Object addToEnvironment(String propName,
                               Object propVal)
                        throws NamingException
從介面 Context 複製的描述
將一個新環境屬性添加到此上下文的環境中。如果該屬性已經存在,則覆寫該屬性的值。有關環境屬性的更多詳細資訊,請參閱類別描述。

指定者:
介面 Context 中的 addToEnvironment
參數:
propName - 要添加的環境屬性的名稱,不能為 null
propVal - 要添加的屬性的值,不能為 null
返回:
該屬性以前的值,如果該屬性以前不在此環境中,則返回 null
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.getEnvironment(), Context.removeFromEnvironment(String)

removeFromEnvironment

public Object removeFromEnvironment(String propName)
                             throws NamingException
從介面 Context 複製的描述
從此上下文的環境中移除一個環境屬性。有關環境屬性的更多詳細資訊,請參閱類別描述。

指定者:
介面 Context 中的 removeFromEnvironment
參數:
propName - 要移除的環境屬性的名稱,不能為 null
返回:
該屬性以前的值,如果該屬性以前不在此環境中,則返回 null
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.getEnvironment(), Context.addToEnvironment(String, Object)

getEnvironment

public Hashtable<?,?> getEnvironment()
                              throws NamingException
從介面 Context 複製的描述
檢索對此上下文有效的環境。有關環境屬性的更多詳細資訊,請參閱類別描述。

調用者不應對返回的物件進行任何更改:因為這些更改對於上下文的影響是不確定的。可以使用 addToEnvironment()removeFromEnvironment() 更改此上下文的環境。

指定者:
介面 Context 中的 getEnvironment
返回:
此上下文的環境,決不能為 null
拋出:
NamingException - 如果遇到命名異常
另請參見:
Context.addToEnvironment(String, Object), Context.removeFromEnvironment(String)

close

public void close()
           throws NamingException
從介面 Context 複製的描述
關閉此上下文。此方法立即釋放此上下文的資源,而不是等待垃圾回收器自動釋放它們。

此方法是冪等的:對已經關閉的上下文調用此方法無效。對已關閉的上下文調用其他任何方法都是不允許的,這會導致不確定的行為。

指定者:
介面 Context 中的 close
拋出:
NamingException - 如果遇到命名異常

getNameInNamespace

public String getNameInNamespace()
                          throws NamingException
從介面 Context 複製的描述
在此上下文自己的名稱空間中檢索其完全名稱。

許多命名服務都有一個“完全名稱”的概念,用於其各自的名稱空間中的物件。例如,LDAP 項有一個獨特的名稱,而 DNS 記錄有一個完全限定名。此方法允許客戶端應用程序檢索此名稱。此方法返回的字元串不是一個 JNDI 復合名稱,不應將它直接傳遞給上下文方法。在沒有完全名稱概念的命名系統中,將拋出 OperationNotSupportedException

指定者:
介面 Context 中的 getNameInNamespace
返回:
此上下文在其自己的名稱空間中的名稱,決不能為 null
拋出:
OperationNotSupportedException - 如果命名系統沒有完全名稱的概念
NamingException - 如果遇到命名異常

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only