我正在尝试将EJB注入servlet,但我发现了一个问题。 我有无状态豆:
@Stateless
public class ServiceBean implements ServiceBeanLocal{...}
和EAR项目的另一个模块中的servlet:
@WebServlet("test")
public class TestServlet extends HttpServlet {
@Inject
ServiceBeanLocal serviceBean;
//... doGet(), doPost()...
}
slsb和servlet都由容器管理,因此使用CDI @Inject注释注入应该没有问题,但是当调用doGet()
方法时,serviceBean
为空。
当我将@Inject更改为旧的@EJB时,一切正常并且注入了slsb。我找不到信息为什么,@ Inject在servlet中不起作用。它是与CDI规范相关联还是与Wildfly / Weld相关联?