Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Bug
-
7.0.3
-
None
-
None
-
None
Description
Servlet with:
@EJB(beanName = "FirstBean", name = "ejb/TestServlet/first") SessionBean firstByBeanName; @EJB(beanName = "SecondBean", name = "ejb/TestServlet/second") SessionBean secondByBeanName; @EJB(lookup = "java:comp/env/ejb/TestServlet/first") private SessionBean firstByLookup; @EJB(lookup = "java:comp/env/ejb/TestServlet/second") private SessionBean secondByLookup;
Expected Output:
FirstBean (by BeanName): org.example.FirstBean SecondBean (by BeanName): org.example.SecondBean FirstBean (by lookup): org.example.FirstBean SecondBean (by lookup): org.example.SecondBean
Actual Output:
FirstBean (by BeanName): org.example.FirstBean SecondBean (by BeanName): org.example.SecondBean FirstBean (by lookup): org.example.SecondBean SecondBean (by lookup): org.example.SecondBean
Problem:
"FirstBean (by lookup)" or "SecondBean (by lookup)" are always injected the same instance - i.e. either FirstBean or SecondBean, while FirstBean should be injected FisrtBean, and SecondBean -> SecondBean.
Attached application that reproduces the issue and prints the naming context