5

Glassfish 4.0 を使用して REST アプリケーションを開発しています。

リソース クラスでは、クラスを @Stateless にし、@EJB を介して注入することで、注入を機能させることができます (注入されたクラスはステートレス EJB です)。

ただし、このアプローチは JAX-RS フィルターでは機能しません。注射が全く効きません。

以下のコードを参照してください。

@Provider
public class UpdateFilter implements ContainerRequestFilter {

    @EJB
    private MyBeanInterface doStuffBean;

    @Override
    public void filter(ContainerRequestContext requestContext) {

        ...
    }
}

doStuffBean は常に null です。

助言がありますか?

4

2 に答える 2

1

@EJB は、他の EJB やサーブレットと同様に、Java EE マネージド クラスでのみ機能すると思います。

CDI を使用している場合は、代わりに @Inject アノテーションを使用できますが、このクラスが ManagedBean でない場合は、ルックアップを行う必要があります。

于 2013-07-30T17:54:54.747 に答える