我正在使用 Struts 2.2.1.1 和 Hibernate 3.6.2.Final。我还将 C3P0 用于在 Tomcat 7.0.11 上运行的连接池。
我遇到的问题是我的 Hibernate 会话没有被关闭,并且我很快超过了“hibernate.c3p0.max_size”属性中配置的最大打开连接数。
我认为这是因为我的休眠会话已打开但从未关闭。我正在从存储在 ServletContext 中的 SessionFactory 打开 Sessions。我尝试在我的 Action 类的 finally{} 块中关闭会话,但这会引发 org.hibernate.LazyInitializationException 异常。
我做了一些研究,发现了Full Hibernate Plugin方法和Open Session in View方法。
我假设这是一个常见问题,我想了解一下最常用的解决方案。
我注意到的另一件事是 Full Hibernate Plugin 支持 Struts 2.0.9+ 到 2.1.6,但我使用的是 2.2.1.1。不确定这是否会成为问题,或者网站是否尚未更新以列出较新版本。
非常感谢任何输入。