@LocalBinding(jndiBinding="sample/student") EJB 3.0, отсутствующий в EJB 3.2

@LocalBinding(jndiBinding="sample/student") в EJB 3.0 используется для присвоения предпочтительного имени JNDI бину EJB.

И для поиска с использованием определенного имени JNDI используется код

Context c = new InitialContext();
studentBean = (studentlBean) c.lookup("sample/student");

Как это можно сделать в EJB 3.2 как @LocalBinding не поддерживается в сервере приложений EJB3.2 wildfly 8. Пожалуйста помоги.

1 ответ

Решение

Мы решили эту проблему путем создания служебного класса и метода, который вычисляет правильное имя jndi по классу EJB. В этом методе мы идем по дереву jndi и проверяем каждый его экземпляр. Если мы нашли экземпляр требуемого класса, верните его в запрашиваемый класс. Насколько мне известно, javaee не дает других вариантов для получения экземпляра EJB по имени jndi.

Другие вопросы по тегам