使用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>

转载于:https://blog.51cto.com/weiyongliang/284992