JSF、フィルタ、JPAを初めて使用し、NetBeansとGlassfishを使用しています。Javaサーブレット他のオブジェクトとエンティティマネージャのフィルタとスコープ
私はJSFフォームを提出して、オブジェクトのメソッドにアクセスして、ファサードオブジェクトメソッドを呼び出してDBクエリを実行します。しかし、
@PersistenceContext(unitName = "NAMEOFAPP")
private EntityManager em;
私がしようとすると(前または後chain.doFilter)フィルタクラスから同じファサードを呼び出し、ファサードクラスとのEntityManagerが仕事: ファサードクラスのEntityManagerへのアクセスを宣言するために注釈を使用しています私が自分のクラスをFilterクラスでインスタンス化し、Facadeにアクセスしようとするメソッドを呼び出すと、インスタンス化されず、呼び出し時にnull例外が発生します。
したがって、ClassをFacade/EntityManagerにアクセスするにはどうすればよいですか?ファサードは、フィルタークラスと同じ方法で宣言します。他の全てが既にインスタンス化されたとき、私は新しいに私のクラスを持っていないのはなぜ
@EJB
private MyFacade myFacade;
?
ありがとうございました。
ありがとうBozho。クラスをManagedBeanとして宣言しましたが、現在Glassfishはjavax.naming.NameNotFoundExceptionで500をスローします。このBeanをビルド時にピックアップするように宣言するにはどうすればよいですか? – JPC
グラスフィッシュのバージョンは? – Bozho
Ver 3.0.1では、faces-config.xmlにの宣言はありません。私はFilterクラスのマネージドBeanを宣言するときに@EJBアノテーションを使用します。どうもありがとう。 –
JPC