我正在使用 ejb 3 并尝试@Inject HttpServletRequest,但在部署时出现异常。
代码:
@Inject private HttpServletRequest httpRequest;
异常(exception):
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [HttpServletRequest] with qualifiers [@Default] at injection point [[field] @Inject private com.kmware.ttk.highway.beans.session.UserSessionBean.httpRequest]
我能用它做什么?
最佳答案
HttpServletRequest 的生命周期由 EJB/web 容器而不是 CDI 容器管理。尝试注入(inject)它会导致问题,因为接口(interface)通常有很多实现,而您的 CDI 容器没有足够的信息来决定注入(inject)哪个实现。即使您成功注入(inject)了它的一个实例,它也不会与 EJB 容器管理的实例相同。
要获取正确管理的请求实例,请执行以下操作:
@Context
private HttpServletRequest httpRequest;
关于java - 注入(inject) HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419887/