Nesse post vou mostrar como fazer lookup de um SessionBean com interface local.
Primeiro nós devemos referenciar o bean no web.xml do projeto:
1 2 3 4 5 |
<ejb-local-ref> <ejb-ref-name>ContatoBean</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local>br.com.beans.ContatoBeanLocal</local> </ejb-local-ref> |
Na tag local nós referenciamos o caminho completo da interface local do bean ContatoBean.
Agora basta criar uma classe para recuperar o nosso bean.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import javax.naming.InitialContext; import javax.naming.NamingException; public final class ServiceLocator { private ServiceLocator(){ super(); } public static <T> T buscarEJB(JndiNames jndi) throws NamingException { InitialContext ctx = new InitialContext(); return (T)ctx.lookup(jndi.toString()); } } |
Vamos criar uma classe para testar o lookup
1 2 3 4 5 6 7 8 |
public class Teste{ public static void main(String args]){ ContatoBean contatoBean = ServiceLocator.buscarEJB("java:comp/env/ContatoBean"); contatoBean.umMetodoQualquer(); } } |
Repare que o parâmetro passado no método buscarEJB é a string “java:comp/env/” mais o nome do bean declarado na tag <ejb-ref-name> no web.xml.
Até o próximo post.