@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.