Olá pessoal,
Estou migrando uma aplicação web de Java EE 6 para Java EE 5. Tive de fazer algumas alterações. Uma delas é em relação ao EJB. Antes eu possuia uma classe de servicço com a anotação @Stateless e no meu ManagedBean(JSF2.0) eu apenas declarava uma varíavel com a anotação @EJB. Tudo funcionava perfeitamente.
Quando fiz a migração, além de problemas com JPA que eu já resolvi, tive um problema com este tal de EJB. Ele me diz o seguinte:
Caused by: com.sun.faces.spi.InjectionProviderException: com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref br.ceptro.solicitarAcesso.managedBeans.LoginBean/userServices@jndi: ejb/UsuarioServices@[email removido]@Session@null into class br.ceptro.solicitarAcesso.managedBeans.LoginBean
at com.sun.faces.vendor.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:97)
at com.sun.faces.mgbean.BeanBuilder.injectResources(BeanBuilder.java:205)
... 55 more
Caused by: com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref br.ceptro.solicitarAcesso.managedBeans.LoginBean/userServices@jndi: ejb/UsuarioServices@[email removido]@Session@null into class br.ceptro.solicitarAcesso.managedBeans.LoginBean
at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:387)
at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:206)
at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:127)
at com.sun.faces.vendor.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:93)
... 56 more
Caused by: javax.naming.NameNotFoundException: UsuarioServices#br.ceptro.solicitarAcesso.servicos.UsuarioServices not found
Eu possuo no meu EJB:
@Stateless(mappedName="ejb/UsuarioServices")
public class UsuarioServices implements UsuarioServicesInterface
Na interface (me disseram que eu precisava criar uma com os métodos que aquele EJB faz - Também coloquei o local sei lá pra que)
@Local
public interface UsuarioServicesInterface
No meu managedBean:
@EJB(mappedName="ejb/UsuarioServices")
protected UsuarioServices userServices;
E agora Jesus? Não roda nem a pau.