package com.test.ejb; import javax.ejb.Local; import javax.ejb.Stateless; import javax.enterprise.inject.Instance; import javax.inject.Inject; @Stateless @Local(TestEJBInterface.class) public class TestEJB implements TestEJBInterface { @Inject private DependentCDIBean cdiBean; @Inject public TestEJB(DependentCDIBean cdiBean) { this.cdiBean = cdiBean; System.out.println("In constructor DependentCDIBean, cdiBean = " + cdiBean); } // workaround inject Instance<> does not work either // NOTE: disable the other constructor to escape ambiguous @Inject constructors //@Inject //public TestEJB(Instance cdiBean) { // this.cdiBean = cdiBean.get(); // System.out.println("In constructor Instance, cdiBean = " + cdiBean); //} @Inject public void setCDIBean(DependentCDIBean cdiBean) { this.cdiBean = cdiBean; System.out.println("In setCDIBean DependentCDIBean, cdiBean = " + cdiBean); } public String method() { return "Injected bean is " + cdiBean; } }