当前位置: 首页 > 知识库问答 >
问题:

Guice-Perith:尝试在已关闭的EntityManager上执行操作

穆铭晨
2023-03-14

我有一个由maven管理的应用程序,它有两个模块:一个用于持久性,另一个用于webapp本身(gwt)。

我在持久性模块中的测试就像一个魅力,但是,在webapp中,当我多次执行相同的方法时,我得到了一个java.lang.IllegalStateExc0019:试图在封闭的EntityManager上执行操作。

我使用guice persist将实体管理器注入到我的DAO中,我的所有DAO方法都有@Transactional注释。

在我的网络应用程序中,我放了一个:公共类ScuvServletModureServletModule{

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

如果我删除了PeristFilter,它会停止工作,但会随机抛出事务已关闭异常或类似的异常。

有什么帮助吗?

共有1个答案

呼延博易
2023-03-14

我发现了问题。它是PeristFilter。实际上,它是一个单例,我的DAO也是单例,但是实体管理器不是。

现在,我注入了一个提供者

 类似资料:
  • 问题内容: 我正在阅读有关此问题,但仍然没有找到解决方案。我注意到有时,我的应用会引发此错误: 我有一个使用此方法的文件,以获取其实例: 然后,我有类似这样的方法(它在发生该错误的行中崩溃)。它几乎从不崩溃,但有时会崩溃。 就这样,在我使用的所有方法中: 然后关闭游标和数据库。在这种情况下,该错误被抛出该行: 我不明白为什么如果我之前打电话,错误提示数据库已关闭。请支持!谢谢 :) 问题答案: 去

  • 我使用了SQLiteDataBaseHelper类,其getInstance方法更改为synchronize. 作为此答案,但仍然存在问题not fixed。

  • 我不明白为什么如果我之前调用,错误会说数据库是关闭的。请支持!谢谢:)

  • 编辑问题,以包括预期行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答问题。 哪里出错:< br >任务执行失败”:app:checkDevDebugAarMetadata。 无法解析配置': app: devDebugRuntime Classpath'的所有文件。无法解析net.minidev: json-Smart:[1.3.1,2.3]。需要:项目:app 我在构建项目时

  • 问题内容: 我试图在Java中实现一个非常简单的Trie,该Trie支持3种操作。我希望它具有一个insert方法,一个has方法(即trie中的某个单词)和一个toString方法以字符串形式返回trie。我相信我的插入工作正常,但是has和toString证明很困难。到目前为止,这就是我所拥有的。 特里类。 和节点类 因此,基本上,在创建Trie时,将创建一个TrieNode作为具有26个子级