Pessoal
Existe alguma maneira de acessar uma interface local de um EJB através de lookup e não usando a anotação @EJB ?
Pesquisei isso e, dentre as respostas que achei, nenhuma funcionou.
Isto é possíve? Se sim, como?
Obrigado
Pessoal
Existe alguma maneira de acessar uma interface local de um EJB através de lookup e não usando a anotação @EJB ?
Pesquisei isso e, dentre as respostas que achei, nenhuma funcionou.
Isto é possíve? Se sim, como?
Obrigado
tente usar o @Local no EJB3
Existe aquela forma com lookup no braço:
ctx = new javax.naming.InitialContext();
ExemploBOLocal local = (ExemploBOLocal) ctx.lookup(ExemploBOLocal.JNDI_LOCALNAME);
[quote=odair.bonin]Existe aquela forma com lookup no braço:
ctx = new javax.naming.InitialContext();
ExemploBOLocal local = (ExemploBOLocal) ctx.lookup(ExemploBOLocal.JNDI_LOCALNAME);
[/quote]
Neste caso, como que eu devo fazer?
Digamos que eu tenha o seguinte EJB:
@Local
public interface TesteLocal{
public String getTeste();
}
@Stateless(name="Teste", mappedName="TesteBean")
public TesteBean implements TesteLocal {
public String getTeste(){
return "Teste";
}
}
Neste caso, qual seria o nome que eu teria que dar o lookup?
Então, depende do servidor que voce esta utilizando.
Se estiver usando JBOSS, acredique q seja:
TesteLocal local = (TesteLocal) ctx.lookup("TesteBean/local");
Tenta isso ai =)
Então, depende do servidor que voce esta utilizando.
Se estiver usando JBOSS, acredique q seja:
TesteLocal local = (TesteLocal) ctx.lookup("TesteBean/local");
Tenta isso ai =)
[/quote]
E se for glassfish?
TesteLocal local = (TesteLocal) ctx.lookup("java.comp/env/TesteBean");
Não funcionou. Alguma outra forma?
tente…
no lugar disto java.comp/env/TesteBean
passar o full qualified name da classe
1. TesteLocal local = (TesteLocal) ctx.lookup("java.comp/env/TesteBean");
Oi,
Cada servidor de aplicação tem uma forma de consultar a arvore JNDI onde tem os nomes
dos recursos implantados (no seu caso seu EJB).
Desta maneira, você pode fazer um lookup DIRETO neste nome:
context.lookup("nomedorecurso")
Mas esta é uma forma NÃO portável.
Desta maneira, uma outra forma é criar um mapeamento no descritor da aplicação
de um nome lógico para o nome físico do recurso.
e fazer o lookup sobre o nome lógico utilizando
context.lookup("java:comp/env/nomelogico")
Você pode encontrar mais detalhes e exemplos nos links abaixo:
Espero ter ajudado,
Roger