Zum Inhalt springen

„Java Naming and Directory Interface“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
tk k
Removed Comma
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 1: Zeile 1:
'''Java Naming and Directory Interface''' ('''JNDI''') ist eine Programmierschnittstelle ([[Programmierschnittstelle|API]]) innerhalb der [[Programmiersprache]] [[Java (Programmiersprache)|Java]] für [[Namensdienst]]e und [[Verzeichnisdienst]]e. Mit Hilfe dieser Schnittstelle können Daten und Objektreferenzen anhand eines Namens abgelegt und von Nutzern der Schnittstelle abgerufen werden.
'''Java Naming and Directory Interface''' ('''JNDI''') ist eine [[Programmierschnittstelle]] (API) innerhalb der [[Programmiersprache]] [[Java (Programmiersprache)|Java]] für [[Namensdienst]]e und [[Verzeichnisdienst]]e. Mit Hilfe dieser Schnittstelle können Daten und Objektreferenzen anhand eines Namens abgelegt und von Nutzern der Schnittstelle abgerufen werden.


Die Schnittstelle ist dabei unabhängig von der tatsächlichen [[Implementierung]]. Vielmehr ist JNDI ein sogenanntes [[Service Provider Interface]] (SPI), das Herstellern erlaubt, eigene Lösungen in dieses Framework einzubinden.
Die Schnittstelle ist dabei unabhängig von der tatsächlichen [[Implementierung]]. Vielmehr ist JNDI ein sogenanntes [[Service Provider Interface]] (SPI), das Herstellern erlaubt, eigene Lösungen in dieses Framework einzubinden.


In der Praxis wird JNDI vor allem zum Auffinden von Datenbanken und Registrierung, verteilter Objekte in einem Netzwerk und Aufruf über [[Remote Method Invocation]] (RMI) verwendet.
In der Praxis wird JNDI vor allem zum Auffinden von Datenbanken und Registrierung verteilter Objekte in einem Netzwerk und Aufruf über [[Remote Method Invocation]] (RMI) verwendet.


Die API enthält:
Die API enthält:
Zeile 21: Zeile 21:
''Lookup'' ({{enS}} für ''Nachschlagen'') ist der Vorgang, mit dem die benannten Objekte ermittelt werden.
''Lookup'' ({{enS}} für ''Nachschlagen'') ist der Vorgang, mit dem die benannten Objekte ermittelt werden.


In JNDI werden die Namen hierarchisch angeordnet. Namen sind üblicherweise [[Zeichenkette|Strings]] wie „com.mydomain.MyBean“, können aber auch beliebige [[Objekt (objektorientierte Programmierung)|Objekte]] sein, die die [[Schnittstelle (Programmierung)|Schnittstelle]] ''javax.naming.Name'' implementieren. Im Namens- bzw. Verzeichnisdienst ist für jeden Namen entweder das ihm zugeordnete Objekt selbst gespeichert oder eine JNDI-Referenz auf das zugeordnete Objekt. Die Programmierschnittstelle von JNDI („JNDI API“) definiert, wo nach dem Objekt zu suchen ist. Der initiale Kontext ist dafür üblicherweise der Startpunkt.
In JNDI werden die Namen hierarchisch angeordnet. Namen sind üblicherweise [[Zeichenkette|Strings]] wie „com.mydomain.MyBean“, können aber auch beliebige [[Objekt (Programmierung)|Objekte]] sein, die die [[Schnittstelle (Objektorientierung)|Schnittstelle]] ''javax.naming.Name'' implementieren. Im Namens- bzw. Verzeichnisdienst ist für jeden Namen entweder das ihm zugeordnete Objekt selbst gespeichert oder eine JNDI-Referenz auf das zugeordnete Objekt. Die Programmierschnittstelle von JNDI („JNDI API“) definiert, wo nach dem Objekt zu suchen ist. Der initiale Kontext ist dafür üblicherweise der Startpunkt.


Im einfachsten Fall genügt ein initialer Kontext, um nach einem Namen zu suchen:
Im einfachsten Fall genügt ein initialer Kontext, um nach einem Namen zu suchen:

Aktuelle Version vom 7. Oktober 2021, 12:34 Uhr

Java Naming and Directory Interface (JNDI) ist eine Programmierschnittstelle (API) innerhalb der Programmiersprache Java für Namensdienste und Verzeichnisdienste. Mit Hilfe dieser Schnittstelle können Daten und Objektreferenzen anhand eines Namens abgelegt und von Nutzern der Schnittstelle abgerufen werden.

Die Schnittstelle ist dabei unabhängig von der tatsächlichen Implementierung. Vielmehr ist JNDI ein sogenanntes Service Provider Interface (SPI), das Herstellern erlaubt, eigene Lösungen in dieses Framework einzubinden.

In der Praxis wird JNDI vor allem zum Auffinden von Datenbanken und Registrierung verteilter Objekte in einem Netzwerk und Aufruf über Remote Method Invocation (RMI) verwendet.

Die API enthält:

  • einen Mechanismus zur Bindung eines Objekts an einen Namen
  • Methoden für den Abruf von Informationen anhand eines Namens
  • ein Ereigniskonzept, über das Clients über Änderungen informiert werden
  • spezielle Erweiterungen für LDAP-Funktionalitäten

JNDI erlaubt die Unterstützung praktisch aller Arten von Namens- und Verzeichnisdiensten, insbesondere von:

Lookup (englisch für Nachschlagen) ist der Vorgang, mit dem die benannten Objekte ermittelt werden.

In JNDI werden die Namen hierarchisch angeordnet. Namen sind üblicherweise Strings wie „com.mydomain.MyBean“, können aber auch beliebige Objekte sein, die die Schnittstelle javax.naming.Name implementieren. Im Namens- bzw. Verzeichnisdienst ist für jeden Namen entweder das ihm zugeordnete Objekt selbst gespeichert oder eine JNDI-Referenz auf das zugeordnete Objekt. Die Programmierschnittstelle von JNDI („JNDI API“) definiert, wo nach dem Objekt zu suchen ist. Der initiale Kontext ist dafür üblicherweise der Startpunkt.

Im einfachsten Fall genügt ein initialer Kontext, um nach einem Namen zu suchen:

Hashtable args = new Hashtable();

// zunächst muss die Kontext-Factory und somit die
// Implementierung des JNDI-Providers definiert werden:
args.put(Context.INITIAL_CONTEXT_FACTORY, "com.jndiprovider.TheirContextFactory");

// dann die URL, die definiert wo die Daten zu finden sind:
args.put(Context.PROVIDER_URL, "jndiprovider-database");

// damit bekommt man im einfachsten Fall den initialen Kontext:
Context myCurrentContext = new InitialContext(args);

// mit Hilfe dieses Kontextes kann man dann Objekte,
// die zuvor an den Kontext gebunden wurden, finden:
Object reference = myCurrentContext.lookup("com.mydomain.MyBean");