java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2690) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2619) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1552) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666) at com.mysql.jdbc.Connection.execSQL(Connection.java:2978) at com.mysql.jdbc.Connection.execSQL(Connection.java:2902) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:933) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1027) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:120) at org.hibernate.loader.Loader.getResultSet(Loader.java:1272) at org.hibernate.loader.Loader.doQuery(Loader.java:391) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218) at org.hibernate.loader.Loader.doList(Loader.java:1593) at org.hibernate.loader.Loader.list(Loader.java:1577) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74) at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:603) at com.qiyilighting.hibernate.QiYiHibernateImpl$12.execute(QiYiHibernateImpl.java:187) at com.qiyilighting.util.HibernateTemplate.find(HibernateTemplate.java:69) at com.qiyilighting.hibernate.QiYiHibernateImpl.findManagerByLogin(QiYiHibernateImpl.java:190) at com.qiyilighting.struts.action.LoginAction.execute(LoginAction.java:128) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.qiyilighting.struts.filter.EncodingFilter.doFilter(EncodingFilter.java:23) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.qiyilighting.struts.filter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:24) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
解决方案 »
- JSP中使用Onclick传值到Servlet,是怎样?新人——求指教!
- Symantec Norton Ghost 是window版,能否用于linux系统的备份还原?
- SSH整合框架项目布局求解!
- 经典Spring 整合hibernate的问题,寻求最佳解决方案
- Java web service 方面的书籍!
- CVS是什么
- 100分跪求Tomcat apache Soap 配置问题,高手帮忙呀,我按网上的说法配了,为什么就是不行呢?
- Spring+hibernate中加上AOP的事物管理怎么始终出现这样的问题?????
- resin下如何连接mssql数据库
- JUnit测试不通过
- 求助阿 action跳转到另一个action了
- 问个弱弱的问题,*.hbm在hibernate中有什么作用?
========================================================================
我对这个项目报错的分析如下:根据日志的报错,我能够定位到报错的是在QiYiHibernateImpl类的findManagerByLogin()方法(187行),相关代码如下:
Query query = session.createQuery("From Manager m Where m.logName = :logName");
query.setString("logName", logName);
Manager manager = (Manager)query.uniqueResult();从这些代码中,我想有两种可能:一是session有问题;二是Query及HQL的问题。既然平时大部分时间都能够正常运行,我想基本上能够排除Query及HQL的问题。而这里的session由HibernateSessionListener在请求创建时就已产生。在这个项目中,SessionFactory在ApplicationListener里就创建了,而此后的HibernateSessionFactory这个类能够判断SessionFactory是否存在,若不存在则创建SF,存在的话就不执行代码。我始终想不明白的问题是:
一、为什么会正常运行一段时间之后会无法和数据库交互导致无法登录?这个系统目前还没有正式投入使用,每天的访问量很少很少。奇怪的是平时都能够正常运行,这说明代码应该没有问题啊?是不是这其中还会有其他的原因,比如内存溢出啊,或者其他什么底层的对象由于时间的推迟而失效或者溢出之类。我怀疑tomcat或mysql服务器那边会有与时间相关的东西,而我目前所知道的只是服务器那边告诉我每晚10点服务器会重启,可是有很多天我10点以后访问系统仍然可以正常登录。二、为什么重新上传web.xml之后就能够马上恢复正常?重新上传web.xml之后tomcat那边会发生什么吗?