JNDI в этом сценарии используется в качестве центрального местоположения, через которое «имена» (разновидность URL) направляются в EJB-компонент. Подумайте об этом, как сервлет сопоставляется с URL.
Если EJB-компоненты являются локальными для приложения (например, они находятся в веб-модуле или в модуле EJB того же EAR-файла), то вам необязательно вступать в контакт с JNDI. А именно, вы, вероятно, использовали бы инъекцию для получения экземпляров вашего бина, и тогда JNDI не нужен.
Однако, если вам нужно обратиться к EJB-компоненту на удаленном сервере или если вы хотите программно выполнить поиск (прокси для) компонента, вы должны использовать его имя JNDI и JNDI для его получения.
См. Это для получения дополнительной информации, включая ENC: Объявление @Resource и @EJB на уровне класса в Java EE6