我每天早上都会收到以下错误。我必须每天早上重新启动服务器以临时修复错误。可能有一个代码相关的问题,但为什么每天早上?我假设也可能存在与服务器相关的问题。
这是堆栈跟踪。
org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method getUserInfomationByEmail
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at ws.AuthenticateStub.getUserInfomationByEmail(AuthenticateStub.java:226)
at xxx.xxx.tvawsclient.authenticate.AuthClient.getUserInfomationByEmail(AuthClient.java:97)
at controller.Auth.doGet(Auth.java:104)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:106)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:142)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
你们需要其他任何信息来帮助我吗?
答案 0 :(得分:0)
似乎问题是mysql端口在默认时间(8)小时后无法连接到数据库时空闲。这是每天早上面对这个问题的原因。
有两种方法可以解决这个问题, 1.使用autoconnect = true属性进行描述。 2.使用连接池
以下链接提供了更多信息。 trouble shooting mysql connection
15.4:我有一个servlet /应用程序可以正常工作一天,然后停止工作MySQL在8小时不活动后关闭连接。你要么需要 使用连接池来处理陈旧连接或使用 autoReconnect参数(请参见第5.1节“驱动程序/数据源类” Connector / J“的名称,URL语法和配置属性。
另外,在应用程序中捕获SQLExceptions并处理它们, 而不是一直传播它们直到你的应用程序退出。 这只是一个很好的编程习惯。 MySQL Connector / J将设置 SQLState(请参阅API文档中的java.sql.SQLException.getSQLState()) 08S01在遇到网络连接问题时 处理查询。此时尝试重新连接到MySQL。
以下(简单化)示例显示了可以处理的代码 这些例外情况可能如下: