1

在一个 JSF 2.2 webapp 中,我有一个计划的线程执行器服务,它定期执行一些代码,这些代码需要实例化一个请求范围的 bean 来执行一些任务。如何在没有来自任何客户端的任何 http 请求但来自应用程序范围的 bean 的情况下实例化请求范围的 bean。

当我尝试:

FacesContext.getCurrentInstance().getApplication().evaluateExpressionGet(context, "#{namesDirectory}", NamesDirectory.class)

NamesDirectory请求范围的bean在哪里,我得到NullPointerException

4

1 回答 1

1

您不应该依赖托管 bean 来完成任务。托管 bean(不管它们的范围)用于请求/响应周期,这是它们唯一的工作。任何业务逻辑都应该在服务类中处理,例如 EJB、CDI、Spring bean、来自另一个框架的 bean 或用作服务层的普通 Java 类。

于 2014-06-10T16:31:20.277 回答