在Hibernate中使用c3p0,配置如下
- <!-- c3p0連接池 -->
- <property name="connection.provider_class">
- org.hibernate.conection.C3P0ConnectionProvider
- </property>
- <property name="c3p0.min_size">5</property>
- <property name="c3p0.max_size">20</property>
- <property name="c3p0.timeout">3600</property>
- <property name="c3p0.max_statements">10</property>
本地運行java程序沒有報錯,部署到tomcat以後運行出現以下異常:
- java.lang.reflect.InvocationTargetException
- sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- java.lang.reflect.Method.invoke(Method.java:597)
- com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
- com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
- com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
- com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
- org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
- com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
- com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
- com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
- com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
- 以下省略
解決辦法:
把配置修改成下面的就可以了
- <!-- c3p0連接池 -->
- <property name="org.hibernate.connection.C3P0ConnectionProvider">
- org.hibernate.conection.C3P0ConnectionProvider
- </property>
- <property name="c3p0.min_size">5</property>
- <property name="c3p0.max_size">20</property>
- <property name="c3p0.timeout">3600</property>
- <property name="c3p0.max_statements">10</property>