2

永続化用と webapp 自体 (gwt) 用の 2 つのモジュールを持つ maven によって管理されるアプリがあります。

永続化モジュールでの私のテストは魅力のように機能しますが、webapp で同じメソッドを複数回実行すると、java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManager..

guice-persist を使用してエンティティ マネージャーを DAO に挿入し、すべての DAO メソッドに@Transactional注釈を付けています。

私の webapp では、次のように記述します。 public class ScuvServletModule extends ServletModule {

    @Override
    protected void configureServlets() {
       super.configureServlets();
       install(MyPersistenceAPI.getModule()); // return my module and install it
       filter("/*").through(PersistFilter.class);
       /// another bindings...
    }
}

を削除するとPersistFilter、動作しますが、トランザクションクローズ例外またはそのようなものがランダムにスローされます。

何か助けはありますか?

4

1 に答える 1

3

問題が見つかりました。ですPersistFilter。明らかに、それはシングルトンです。私のDAOもシングルトンですが、EntityManagerはそうではありません。

Provider<EntityManager>そのため、代わりにa を挿入するEntityManagerと、チャームのように機能します。

于 2012-05-07T20:30:30.163 に答える