JNDI (Java Naming and Directory Interface) rappresenta un'estensione standard Java che fornisce un'API uniforme per l'accesso a una varietà di servizi di denominazione e directory.
I client JMS utilizzano JNDI per ottenere riferimenti a oggetti gestiti sfogliando un servizio di denominazione. Gli oggetti gestiti sono oggetti di destinazione JMS e produttori connessione JMS, dove gli oggetti di destinazione JMS sono argomenti e code. Gli oggetti gestiti vengono creati e configurati da un amministratore di sistema.
Per creare e configurare oggetti gestiti da JNDI, fare riferimento alla documentazione del provider JMS. Se si utilizza il provider JMS di WebSphere MQ, consultare il file delle definizioni di esempio JMSAdmin fornito con WebSphere MQ e fare riferimento al libro di Utilizzo del Java con WebSphere MQ.
Gli oggetti gestiti da JNDI vengono memorizzati nei file di associazione. E' possibile che questi siano basati su file system o su LDAP. LDAP (Lightweight Directory Access Protocol) rappresenta un protocollo software che consente di individuare organizzazioni, individui e altre risorse: ad esempio, per rilevare file e dispositivi in una rete, che si tratti della rete Internet pubblica o una rete Intranet aziendale.
LDAP fa parte di X.500, che rappresenta uno standard per i servizi di directory in una rete.
Un servizio di denominazione associa i nomi a oggetti distribuiti in modo che gli oggetti gestiti siano individuati mediante nomi anziché mediante indirizzi di rete complessi. JNDI fornisce un'astrazione che nasconde le specifiche del servizio di denominazione, rendendo le applicazioni client più portatili.
Un client JMS specifica JNDI InitialContext in modo da ottenere una connessione JNDI al server di messaggistica JMS. InitialContext è un punto di partenza in qualsiasi ricerca JNDI e agisce come root di un file system. Il servizio di directory JMS utilizzato determina le proprietà utilizzate per creare InitialContext.