我创建了(我的第一个)小型 spring 3 MVC 应用程序,但遇到了一个对我来说有点神秘的问题。
该应用程序有几种形式来操作数据库。我创建了一个 Controller Java 类,它将所有请求映射到 java 方法(参见代码)。 在浏览器中发出几个请求后,Web 应用程序崩溃了。操作数据库条目的代码被成功调用,但页面的重新加载似乎失败。
Controller 类:
@RequestMapping("/usermanager")
public String getUserInfo(Map<String, Object> map) throws ServletException {
try {
map.put("userInfo", userService.getUserInfo());
} catch (Exception e) {
throw new ServletException(e);
}
return "usermanager";
}
@RequestMapping("/updateUserInfo")
public String updateUserInfo(@ModelAttribute("userInfo") User user) throws NamingException, SQLException {
userService.storeUserInfo(user);
return "redirect:/service/usermanager";
}
结构非常简单,调用请求usermanager来显示表数据。该网站显示了一个表单,我可以在其中编辑数据,提交表单会调用 updateUserInfo 请求。 几次后,请求在 return "usermanager"; 处挂起。
有人对这种行为有解释,或者有想法吗?
<小时/>编辑: 顺便说一句:没有异常(exception)或其他情况。 Web 应用程序只是挂起。
非常感谢, 问候萨沙
最佳答案
我发现了这个错误。看错地方了。
错误确实发生在 getUserInfo() 中。但这是我的数据库连接方法的一个更普遍的问题。
每次进行数据库查询时,我都会调用:connection = dataSource.getConnection();
这会导致泄漏。
最好检查一下是否已经存在连接:-D
if (connection == null || connection.isClosed()) {
connection = dataSource.getConnection();
}
顺便说一句,我使用嵌入式 Derby 数据库,该数据库由 jdbcTemplate 访问。
有时我们只见树木不见森林:-)
感谢您的努力。 祝你今天过得愉快 萨沙
关于java - Spring 3 MVC,Tomcat Web 应用程序在几次请求后挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860286/