org.apache.axis2.AxisFault:尝试调用服务方法getUserInfomationByEmail时发生异常

时间:2015-10-23 17:30:04

标签: java web-services soap

我每天早上都会收到以下错误。我必须每天早上重新启动服务器以临时修复错误。可能有一个代码相关的问题,但为什么每天早上?我假设也可能存在与服务器相关的问题。

这是堆栈跟踪。

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)

你们需要其他任何信息来帮助我吗?

1 个答案:

答案 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。

     

以下(简单化)示例显示了可以处理的代码   这些例外情况可能如下: