JNDI dans ce scénario est utilisé comme un emplacement central à travers lequel des « noms » (une sorte d'URL) sont routé vers un haricot EJB. Pensez-y comment un Servlet est mappé à une URL.
Si les beans EJB sont locaux pour une application (par exemple, ils résident dans le module Web ou dans le module EJB du même EAR), vous n'avez pas nécessairement besoin d'entrer en contact avec JNDI. À savoir, vous utiliseriez probablement l'injection pour obtenir des instances de votre bean et aucun JNDI n'est nécessaire alors. Toutefois, si vous devez adresser un bean EJB sur un serveur distant ou si vous souhaitez rechercher (par procuration) un bean par programme, vous utiliserez son nom JNDI et JNDI pour l'obtenir.
Voir pour plus d'informations, y compris ENC: Declaring @Resource and @EJB at the class level in Java EE6