Dependency Injection vs Lookup

Amigos, boa noite!!

Estava fazendo uns testes com injeção de dependência de EJBs 3 (session beans) no GlassFish 3, usando JSF 1.2.

Se injeto no managed bean um EJB que está empacotado no módulo web (ou ear), funciona perfeitamente, já com um EJB global não rola. Dei uma pesquisada pra saber se isso é alguma limitação mas não achei nada =(
Para contornar, faço lookup na interface local do EJB global, passando como jndi name : “java:global/<nome_modulo>/<nome_classe_ejb>!<pacote_completo_interface_local>”.

No final das contas, é tudo a mesma coisa, não é?! Tem alguma maneira de utilizar a annotation @EJB para EJBs globais?

Valeu,
Abraços.

Olá,

Se usar a anotação @EJB sem nenhum parâmetro ela só funciona se estiver tudo dentro da mesma aplicação mesmo.
Para outras configurações, será necessário ajustar os parâmetros beanName ou lookup, conforme o caso. Possivelmente algo assim:

@EJB(lookup="java:global/<nome_modulo>/<nome_classe_ejb>’)

*Warning: conheço isso apenas da documentação, não utilizei ainda para lhe responder com 100% de certeza que vai funcionar!