使用struts2 +hibernate+spring 做一个项目时,配置tomcat数据源刷新40多次就会报
Cannot get a connection, pool error Timeout waiting for idle object错误。
感觉就是spring管理的session没有到达释放
网上查资料说没有配置OpenSessionInViewFilter 而导致的,而我已经配置了OpenSessionInViewFilter ,实在是没找到头绪
web.xml配置内容为
<listener>
<listener-class>
com.going.framework.spring.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
后来查阅大量资料后才发现 问题所在,应该先配置OpenSessionInViewFilter后再配置struts2的跳转,这样才能避免Cannot get a connection, pool error Timeout waiting for idle object这问题
<listener>
<listener-class>
com.going.framework.spring.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener-class>
com.going.framework.spring.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>