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 は、単なる CDI Bean ではなく、EJB でなければなりません。追加した

@Singleton

Bean の宣言に追加すると、現在は機能します。

于 2013-10-31T09:53:23.170 に答える