I am using the latest promoted GFv3 build. I have a stateless session bean that is being injected from a JSF 2.0 managed bean. I pared it down to the simplest possible case:
public interface IJavaSB {
String getLanguage();
}
@Stateless public class JavaSB implements IJavaSB {
public String getLanguage() { return "Java"; }
}
@ManagedBean(name = "test") @SessionScoped public class JavaMB {
@EJB private JavaSB slsb;
...
}
I get the stack trace below. If I remove the "implements IJavaSB", all is well, and my app works.
That seems crazy. Before I file a bug report, can anyone tell me whether there is any rule in EJB3.1 that would explain this behavior?
Thanks,
Cay
Caused by: com.sun.faces.spi.InjectionProviderException: com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting to inject Remote ejb-ref name=managed.JavaMB/slsb,Remote 3.x business interface=session.JavaSB,ejb-link=null,mappedName=session.JavaSB,refType=Session into class managed.JavaMB
at org.glassfish.faces.integration.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:98)
at com.sun.faces.mgbean.BeanBuilder.injectResources(BeanBuilder.java:207)
... 53 more
Caused by: com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting to inject Remote ejb-ref name=managed.JavaMB/slsb,Remote 3.x business interface=session.JavaSB,ejb-link=null,mappedName=session.JavaSB,refType=Session into class managed.JavaMB
at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:439)
at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:217)
at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:132)
at org.glassfish.faces.integration.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:94)
... 54 more
Caused by: javax.naming.NamingException: Lookup failed for 'java:comp/env/managed.JavaMB/slsb' in SerialContext [Root exception is javax.naming.NamingException: Exception resolving Ejb for 'Remote ejb-ref name=managed.JavaMB/slsb,Remote 3.x business interface=session.JavaSB,ejb-link=null,mappedName=session.JavaSB,refType=Session' . Actual (possibly internal) Remote JNDI name used for lookup is 'session.JavaSB#session.JavaSB' [Root exception is javax.naming.NamingException: Lookup failed for 'session.JavaSB#session.JavaSB' in SerialContext [Root exception is javax.naming.NameNotFoundException: session.JavaSB#session.JavaSB not found]]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:439)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:340)
... 57 more
Caused by: javax.naming.NamingException: Exception resolving Ejb for 'Remote ejb-ref name=managed.JavaMB/slsb,Remote 3.x business interface=session.JavaSB,ejb-link=null,mappedName=session.JavaSB,refType=Session' . Actual (possibly internal) Remote JNDI name used for lookup is 'session.JavaSB#session.JavaSB' [Root exception is javax.naming.NamingException: Lookup failed for 'session.JavaSB#session.JavaSB' in SerialContext [Root exception is javax.naming.NameNotFoundException: session.JavaSB#session.JavaSB not found]]
at com.sun.ejb.EjbNamingReferenceManagerImpl.resolveEjbReference(EjbNamingReferenceManagerImpl.java:112)
at com.sun.enterprise.container.common.impl.ComponentEnvManagerImpl$EjbReferenceProxy.create(ComponentEnvManagerImpl.java:728)
at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:488)
at com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:142)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:425)
... 60 more
Caused by: javax.naming.NamingException: Lookup failed for 'session.JavaSB#session.JavaSB' in SerialContext [Root exception is javax.naming.NameNotFoundException: session.JavaSB#session.JavaSB not found]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:439)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.sun.ejb.EjbNamingReferenceManagerImpl.resolveEjbReference(EjbNamingReferenceManagerImpl.java:108)
... 64 more
Caused by: javax.naming.NameNotFoundException: session.JavaSB#session.JavaSB not found
at com.sun.enterprise.naming.impl.TransientContext.doLookup(TransientContext.java:197)
at com.sun.enterprise.naming.impl.TransientContext.lookup(TransientContext.java:168)
at com.sun.enterprise.naming.impl.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:58)
at com.sun.enterprise.naming.impl.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:100)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:427)
... 67 more
[Message sent by forum member 'cayhorstmann' (cayhorstmann)]
http://forums.java.net/jive/thread.jspa?messageID=351872