java.sql.SQLException Connection reset 这个错误怎么解决啊?

pine8604 2010-10-22 09:53:42
服务器刚启动时运行都好好的,就是到第二天登录就报错了,查看日志就有如下错误,希望大虾给予小弟帮助,小弟不胜感激。
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]System Exception: Connection reset
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at cn.xcmgjc.it.ao.DB.OpenSql(DB.java:39)
at cn.xcmgjc.it.impl.UserLoginImpl.login(UserLoginImpl.java:22)
at cn.xcmgjc.it.ac.LoginAction.execute(LoginAction.java:57)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
程序配置:
数据源配置(struts-config.xml, struts1.2)
<data-sources>
<data-source key="sqlserverDB"
type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<set-property property="url"
value="jdbc:microsoft:sqlserver://fs_svr:1433;DatabaseName=mapDupliSys" />
<set-property property="maxActive" value="5" />
<set-property property="username" value="sa" />
<set-property property="password" value="" />
<set-property property="autoCommit" value="true" />
</data-source>
</data-sources>

登录Action:
public class LoginAction extends Action {

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
LoginActionForm loginForm = (LoginActionForm) form;
String usrname = loginForm.getUsername();
String password = loginForm.getPassword();
String role = loginForm.getRole();
String rolePri = role;
ServletContext context = servlet.getServletContext();
DataSource dataSource = (DataSource) context
.getAttribute(Constants.DATASOURCE_KEY);
DB db = new DB(dataSource);

HttpSession session = request.getSession();
session.setMaxInactiveInterval(365 * 24 * 3600);

int userId = -1;
// if ("user".equals(role)) {
UserLogin ulogin = new UserLoginImpl();
// System.out.print(usrname+password+role);
// 查询前编码处理
usrname = Converter.enCode(usrname);
role = Converter.enCode(role);

userId = ulogin.login(db, usrname, password, role);

db.close();
if (userId != -1) {
// 记录登录状态
session.setAttribute(Constants.USERNAME_KEY, Converter
.deCode(usrname));// 将用户信息加入session中,usrname可以唯一标识一个用户
session.setAttribute(Constants.ROLE_KEY, Converter.deCode(role));
session.setAttribute(Constants.USERID_KEY, userId);
if ("采购员".equals(rolePri)) {
return mapping.findForward("p_loginSuc");
} else if ("晒图员".equals(rolePri)) {
return mapping.findForward("d_loginSuc");
} else if ("管理员".equals(rolePri)) {
return mapping.findForward("m_loginSuc");
}
}

// 登录失败
ActionMessages errors = new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"error.user.login"));
if (!errors.isEmpty()) {
this.saveErrors(request, errors);
}
return mapping.findForward("login_error");
}
}

登录验证模块:
public class UserLoginImpl implements UserLogin {

public int login(cn.xcmgjc.it.ao.DB db, String usrname,
String password,String role) {
// TODO Auto-generated method stub
String sql="SELECT * FROM [user] WHERE name=? AND psw=? AND role=?";
int userId=-1;

try {
PreparedStatement ps=db.getConnection().prepareStatement(sql);
ps.setString(1, usrname);
ps.setString(2, password);
ps.setString(3, role);
ResultSet rs=db.OpenSql(ps);
if(rs.next())
{
//System.out.print("/n the usrname is :"+usrname+':'+rs.getString(2));
userId=rs.getInt(1);

}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return userId;
}
}
...全文
484 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pine8604 2010-10-23
  • 打赏
  • 举报
回复
如果是少包的话应该是不能正常运行啊,但现在是能正常运行,就是过一天就会产生上面日志里的错误,很纠结!
thy_java 2010-10-22
  • 打赏
  • 举报
回复
我来蒙下 好像是少包 我也初学 错了别介意啊

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧