0

我在 JBoss AS 7.1.1 中有一个应用程序,想使用 TimerService。我因此注入它:

@Resource
private TimerService timerService;

这会在访问应用程序中的页面时导致以下错误:

16:08:30,471 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/c3e].[Faces Servlet]] (http--127.0.0.1-8080-2) Servlet.service() for servlet Faces Servlet threw exception: javax.naming.NameNotFoundException: env/myapp.mypackage.MyClass/timerService -- service jboss.naming.context.java.module.myapp.myapp.env."com.dpdhl.cac.c3e.etl.beans.Resources".timerService

我尝试了其他几种方法,包括注入 SessionContext 或在 InitialContext 上使用 lookup() 来获取 SessionContext,但它们都遇到了基本相同的问题。

我在这里想念什么?

4

1 回答 1

1

问题已解决:我注入 TimerService 的 bean 必须是 EJB,而不仅仅是 CDI bean。我添加了

@Singleton

到bean的声明,它现在可以工作了。

于 2013-10-31T09:53:23.170 回答