Java JNDI-Namen java:/
Bin ich nach dem tutorial: https://docs.oracle.com/javase/tutorial/jndi/index.html
Mein Abenteuer begonnen, die während der Konfiguration einer JNDI-name für eine datasource mit dem WildFly application server. Der name begann mit "java:/". Ich war neugierig auf das, was es war und wie es funktionierte.
Habe ich Apache Directory-LDAP-server-setup, lokal, und ich bin in der Lage, eine Verbindung herzustellen mit:
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:10389/o=JNDITutorial");
env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
env.put(Context.SECURITY_CREDENTIALS, "secret");
try {
Context ctx = new InitialContext(env);
Object obj = ctx.lookup("cn=Rosanna Lee,ou=People");
} catch (NamingException e) {
e.printStackTrace();
}
Meine Verwirrung ist der JNDI-name "java:/".
Kann mir bitte jemand erklären, was "java:/" ist und wie kann ich JNDI verwenden, um mit Ihr zu interagieren?
Meine Vermutung ist seine ein Verzeichnis, das sich irgendwo auf meinem computer.
Danke.
- Werfen Sie einen Blick: docs.jboss.org/author/display/WFLY8/JNDI+Verweis
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Erklärung liegt im Namen: JNDI ist der "Java Naming and Directory Interface". Es ist Teil der Java EE-Spezifikation und bietet eine API für java-clients zu entdecken und zu schauen, Daten und Objekte nach Namen. Diese Objekte sind zugänglich über bestimmte Kontexte, z.B.
ref: http://docs.oracle.com/cd/E19798-01/821-1841/girdr/index.html
Als Pawel merkte in seinem Kommentar, den Wildfly docs sind hier sehr hilfreich:
Den Java-EE-Plattform-Spezifikation definiert die folgenden JNDI-Kontext:
Zusätzlich zu den standard-namespaces, WildFly enthält auch die folgenden zwei globalen namespaces:
Also "java:/" ist nur einen globalen Namensraum (und Kontext), in Wildfly und sollten verwechseln mit einem Ordner. Es ist einfach nur ein "namens-Adresse" in einem Verzeichnis, um Zugriff auf Objekte und Dienstleistungen wie JDBC, EJB, LDAP etc.
Weitere Informationen, die Java-EE-Spezifikation ist nützlich: