Glassfish 4.0を使用してRESTアプリケーションを開発しています。@EJBを使用したGlassFish 4 + JAX-RSフィルタ
リソースクラスでは、@Statelessクラスを作成し、@EJBを介して注入する(注入されたクラスはステートレスなEJBです)。
ただし、この方法はJAX-RSフィルタでは機能しません。私は全く注射することができません。
@Provider
public class UpdateFilter implements ContainerRequestFilter {
@EJB
private MyBeanInterface doStuffBean;
@Override
public void filter(ContainerRequestContext requestContext) {
...
}
}
doStuffBeanは常にnullです:
は、以下のコードを参照してください。
@Injectは機能しません。例外が発生しました:** UnsatisfiedDependencyException:注入可能なオブジェクトがありませんでした... **。 – bafitor
これは、クラスがマネージドBeanではないためです。私はこのプロバイダをManagedBeanにすることができないのではないかと思いますので、おそらくEJBルックアップを行う独自のプロデューサを作成しなければならず、どこにでも挿入することができます(これを行う方法を示す記事がたくさんあります)このクラスでルックアップを行うことができます。 – ZeusSelerim