java - 注入(inject) HttpServletRequest

标签 java dependency-injection ejb jboss7.x

我正在使用 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/

相关文章:

java - 无法从 JBoss7 中的 MBean 获取 EJB

Java Spring - 如何通过 @WithUserDetails 使用 application.properties 中的值

java - Storm 流: Cannot run program "unzip" (in directory ".")

asp.net-core - 依赖倒置原则。为什么我可以访问 ASP.NET Core 5 中非直接引用项目的类?

design-patterns - 直接在方法代码中调用 DI 容器(MVC Actions)

java - 注入(inject)类方法的读/写锁

java - 分离实体和被管理实体

Java EE : EJB Entity, Web 独立版

java - 如何在 JLabel/JTextField 中显示(从左侧换行)文件路径?

java - Struts2 : Save SQL query in the database