最近做的一个ssh框架的H5app、在本地的时候没测出什么问题、但是把项目放在服务器上的时候、就出现第二天使用的时候报错的问题、经过测试及查阅资料发现是MySQL对连接的有效时间导致的。每个连接的默认时间是8小时、如果8小时不操作的话就会关闭连接、而hibernate连接MySQL的时间超过8小时之后就会断掉连接、所以就会报如下错误
1 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 147,973,651 milliseconds ago. The last packet sent successfully to the server was 147,973,651 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 2 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 3 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 4 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 5 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 6 at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 7 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) 8 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3941) 9 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2551) 10 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) 11 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2812) 12 at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5339) 13 at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881) 14 at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.begin(AbstractLogicalConnectionImplementor.java:67) 15 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:272) 16 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:203) 17 at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56) 18 at org.hibernate.internal.AbstractSharedSessionContract.beginTransaction(AbstractSharedSessionContract.java:402) 19 at com.lix.dao.Impl.XtYhDaoImpl.updateXtYhInfo(XtYhDaoImpl.java:71) 20 at com.lix.service.impl.XtYhServiceImpl.updateXtYhInfo(XtYhServiceImpl.java:65) 21 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 22 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 23 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 24 at java.lang.reflect.Method.invoke(Method.java:498) 25 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) 26 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 27 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 28 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 29 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) 30 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 31 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 32 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) 33 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 34 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) 35 at com.sun.proxy.$Proxy44.updateXtYhInfo(Unknown Source) 36 at com.lix.manager.XtYhInfoManager.XtYhLogin(XtYhInfoManager.java:154) 37 at com.lix.Query.ServiceQueryUtil.queryBack(ServiceQueryUtil.java:177) 38 at com.lix.webService.impl.GettingImpl.userLogin(GettingImpl.java:142) 39 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 40 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 41 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 42 at java.lang.reflect.Method.invoke(Method.java:498) 43 at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) 44 at org.apache.cxf.jaxws.JAXWSMethodInvoker.performInvocation(JAXWSMethodInvoker.java:66) 45 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 46 at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232) 47 at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:85) 48 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:74) 49 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) 50 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 51 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 52 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126) 53 at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 54 at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131) 55 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 56 at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 57 at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) 58 at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) 59 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) 60 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) 61 at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) 62 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) 63 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) 64 at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 65 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) 66 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 67 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 68 at org.springframework.orm.hibernate5.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) 69 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 70 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 71 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 72 at com.lix.fileter.webContextFilter.doFilter(webContextFilter.java:36) 73 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 74 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 75 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) 76 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 77 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 78 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 79 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 80 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 81 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 82 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 83 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 84 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 85 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 86 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 87 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 88 at java.lang.Thread.run(Thread.java:748) 89 Caused by: java.net.SocketException: Broken pipe (Write failed) 90 at java.net.SocketOutputStream.socketWrite0(Native Method) 91 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) 92 at java.net.SocketOutputStream.write(SocketOutputStream.java:155) 93 at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 94 at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 95 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3922) 96 ... 80 more 97 [DEBUG] 2018-08-06 09:11:31,216 method:com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:85) 98 Attempted to convert SQLException to SQLException. Leaving it alone. [SQLState: 08S01; errorCode: 0] 99 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 147,973,651 milliseconds ago. The last packet sent successfully to the server was 147,973,651 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 100 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 101 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 102 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 103 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 104 at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 105 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) 106 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3941) 107 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2551) 108 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) 109 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2812) 110 at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5339) 111 at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881) 112 at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.begin(AbstractLogicalConnectionImplementor.java:67) 113 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:272) 114 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:203) 115 at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56) 116 at org.hibernate.internal.AbstractSharedSessionContract.beginTransaction(AbstractSharedSessionContract.java:402) 117 at com.lix.dao.Impl.XtYhDaoImpl.updateXtYhInfo(XtYhDaoImpl.java:71) 118 at com.lix.service.impl.XtYhServiceImpl.updateXtYhInfo(XtYhServiceImpl.java:65) 119 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 120 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 121 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 122 at java.lang.reflect.Method.invoke(Method.java:498) 123 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) 124 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 125 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 126 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 127 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) 128 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 129 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 130 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) 131 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 132 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) 133 at com.sun.proxy.$Proxy44.updateXtYhInfo(Unknown Source) 134 at com.lix.manager.XtYhInfoManager.XtYhLogin(XtYhInfoManager.java:154) 135 at com.lix.Query.ServiceQueryUtil.queryBack(ServiceQueryUtil.java:177) 136 at com.lix.webService.impl.GettingImpl.userLogin(GettingImpl.java:142) 137 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 138 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 139 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 140 at java.lang.reflect.Method.invoke(Method.java:498) 141 at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) 142 at org.apache.cxf.jaxws.JAXWSMethodInvoker.performInvocation(JAXWSMethodInvoker.java:66) 143 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 144 at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232) 145 at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:85) 146 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:74) 147 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) 148 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 149 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 150 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126) 151 at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 152 at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131) 153 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 154 at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 155 at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) 156 at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) 157 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) 158 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) 159 at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) 160 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) 161 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) 162 at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 163 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) 164 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 165 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 166 at org.springframework.orm.hibernate5.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) 167 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 168 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 169 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 170 at com.lix.fileter.webContextFilter.doFilter(webContextFilter.java:36) 171 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 172 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 173 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) 174 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 175 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 176 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 177 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 178 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 179 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 180 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 181 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 182 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 183 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 184 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 185 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 186 at java.lang.Thread.run(Thread.java:748) 187 Caused by: java.net.SocketException: Broken pipe (Write failed) 188 at java.net.SocketOutputStream.socketWrite0(Native Method) 189 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) 190 at java.net.SocketOutputStream.write(SocketOutputStream.java:155) 191 at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 192 at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 193 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3922) 194 ... 80 more 195 [DEBUG] 2018-08-06 09:11:31,216 method:com.mchange.v2.c3p0.impl.DefaultConnectionTester.statusOnException(DefaultConnectionTester.java:126) 196 Testing a Connection in response to an Exception: 197 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 147,973,651 milliseconds ago. The last packet sent successfully to the server was 147,973,651 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 198 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 199 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 200 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 201 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 202 at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 203 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) 204 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3941) 205 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2551) 206 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) 207 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2812) 208 at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5339) 209 at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881) 210 at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.begin(AbstractLogicalConnectionImplementor.java:67) 211 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:272) 212 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:203) 213 at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56) 214 at org.hibernate.internal.AbstractSharedSessionContract.beginTransaction(AbstractSharedSessionContract.java:402) 215 at com.lix.dao.Impl.XtYhDaoImpl.updateXtYhInfo(XtYhDaoImpl.java:71) 216 at com.lix.service.impl.XtYhServiceImpl.updateXtYhInfo(XtYhServiceImpl.java:65) 217 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 218 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 219 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 220 at java.lang.reflect.Method.invoke(Method.java:498) 221 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) 222 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 223 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 224 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 225 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) 226 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 227 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 228 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) 229 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 230 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) 231 at com.sun.proxy.$Proxy44.updateXtYhInfo(Unknown Source) 232 at com.lix.manager.XtYhInfoManager.XtYhLogin(XtYhInfoManager.java:154) 233 at com.lix.Query.ServiceQueryUtil.queryBack(ServiceQueryUtil.java:177) 234 at com.lix.webService.impl.GettingImpl.userLogin(GettingImpl.java:142) 235 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 236 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 237 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 238 at java.lang.reflect.Method.invoke(Method.java:498) 239 at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) 240 at org.apache.cxf.jaxws.JAXWSMethodInvoker.performInvocation(JAXWSMethodInvoker.java:66) 241 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 242 at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232) 243 at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:85) 244 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:74) 245 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) 246 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 247 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 248 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126) 249 at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 250 at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131) 251 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 252 at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 253 at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) 254 at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) 255 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) 256 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) 257 at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) 258 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) 259 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) 260 at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 261 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) 262 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 263 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 264 at org.springframework.orm.hibernate5.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) 265 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 266 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 267 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 268 at com.lix.fileter.webContextFilter.doFilter(webContextFilter.java:36) 269 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 270 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 271 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) 272 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 273 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 274 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 275 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 276 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 277 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 278 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 279 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 280 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 281 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 282 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 283 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 284 at java.lang.Thread.run(Thread.java:748) 285 Caused by: java.net.SocketException: Broken pipe (Write failed) 286 at java.net.SocketOutputStream.socketWrite0(Native Method) 287 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) 288 at java.net.SocketOutputStream.write(SocketOutputStream.java:155) 289 at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 290 at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 291 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3922) 292 ... 80 more 293 [DEBUG] 2018-08-06 09:11:31,217 method:com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnectionNoQuery(DefaultConnectionTester.java:194) 294 Connection com.mysql.jdbc.JDBC4Connection@5549e36f failed default system-table Connection test with an Exception! 295 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. 296 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 297 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 298 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 299 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 300 at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 301 at com.mysql.jdbc.Util.getInstance(Util.java:386) 302 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) 303 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 304 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) 305 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) 306 at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1304) 307 at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1296) 308 at com.mysql.jdbc.ConnectionImpl.getMetaData(ConnectionImpl.java:3239) 309 at com.mysql.jdbc.ConnectionImpl.getMetaData(ConnectionImpl.java:3234) 310 at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnectionNoQuery(DefaultConnectionTester.java:185) 311 at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(DefaultConnectionTester.java:62) 312 at com.mchange.v2.c3p0.impl.DefaultConnectionTester.statusOnException(DefaultConnectionTester.java:143) 313 at com.mchange.v2.c3p0.AbstractConnectionTester.statusOnException(AbstractConnectionTester.java:82) 314 at com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(NewPooledConnection.java:374) 315 at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:895) 316 at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.begin(AbstractLogicalConnectionImplementor.java:67) 317 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:272) 318 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:203) 319 at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:56) 320 at org.hibernate.internal.AbstractSharedSessionContract.beginTransaction(AbstractSharedSessionContract.java:402) 321 at com.lix.dao.Impl.XtYhDaoImpl.updateXtYhInfo(XtYhDaoImpl.java:71) 322 at com.lix.service.impl.XtYhServiceImpl.updateXtYhInfo(XtYhServiceImpl.java:65) 323 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 324 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 325 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 326 at java.lang.reflect.Method.invoke(Method.java:498) 327 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) 328 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) 329 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 330 at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) 331 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) 332 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) 333 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 334 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) 335 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 336 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) 337 at com.sun.proxy.$Proxy44.updateXtYhInfo(Unknown Source) 338 at com.lix.manager.XtYhInfoManager.XtYhLogin(XtYhInfoManager.java:154) 339 at com.lix.Query.ServiceQueryUtil.queryBack(ServiceQueryUtil.java:177) 340 at com.lix.webService.impl.GettingImpl.userLogin(GettingImpl.java:142) 341 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 342 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 343 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 344 at java.lang.reflect.Method.invoke(Method.java:498) 345 at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) 346 at org.apache.cxf.jaxws.JAXWSMethodInvoker.performInvocation(JAXWSMethodInvoker.java:66) 347 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 348 at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232) 349 at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:85) 350 at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:74) 351 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) 352 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 353 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 354 at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126) 355 at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 356 at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131) 357 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 358 at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 359 at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) 360 at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) 361 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) 362 at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) 363 at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216) 364 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) 365 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220) 366 at javax.servlet.http.HttpServlet.service(HttpServlet.java:643) 367 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) 368 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 369 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 370 at org.springframework.orm.hibernate5.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151) 371 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 372 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 373 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 374 at com.lix.fileter.webContextFilter.doFilter(webContextFilter.java:36) 375 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 376 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 377 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) 378 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 379 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 380 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 381 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 382 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 383 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 384 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 385 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 386 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 387 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 388 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 389 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 390 at java.lang.Thread.run(Thread.java:748) 391 Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 147,973,651 milliseconds ago. The last packet sent successfully to the server was 147,973,651 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 392 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 393 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 394 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 395 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 396 at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 397 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) 398 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3941) 399 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2551) 400 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) 401 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2812) 402 at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5339) 403 at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881) 404 ... 75 more 405 Caused by: java.net.SocketException: Broken pipe (Write failed) 406 at java.net.SocketOutputStream.socketWrite0(Native Method) 407 at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) 408 at java.net.SocketOutputStream.write(SocketOutputStream.java:155) 409 at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 410 at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 411 at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3922) 412 ... 80 more
解决方法:如代码中报错提示一般、我们使用在jdbcurl后面加上autoReconnect=true ,
eg:jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true