Java Tomcat和Servlet问题
我的网络应用遇到问题,在网上找不到任何答案 我有一个Java网站 与并行工作的应用程序 使用mod_jk的tomcat和apache 一切正常,但一次之后 在tomcat跑步的那一天,我的 正在执行ajax请求的主servlet停止工作。所有的 其他人工作得很好。我的意思是,我正在其他servlet上执行ajax请求,它们工作得很好 最重要的是它对一个 一天,然后停止下一个(i 必须重新加载我的Web应用程序才能 它又起作用了) 我真的没有任何线索或想法 从哪里开始调查 这个问题 你们这些温文尔雅的开发人员能给我一两个提示吗?:)Java Tomcat和Servlet问题,java,sql,ajax,jsp,tomcat,Java,Sql,Ajax,Jsp,Tomcat,我的网络应用遇到问题,在网上找不到任何答案 我有一个Java网站 与并行工作的应用程序 使用mod_jk的tomcat和apache 一切正常,但一次之后 在tomcat跑步的那一天,我的 正在执行ajax请求的主servlet停止工作。所有的 其他人工作得很好。我的意思是,我正在其他servlet上执行ajax请求,它们工作得很好 最重要的是它对一个 一天,然后停止下一个(i 必须重新加载我的Web应用程序才能 它又起作用了) 我真的没有任何线索或想法 从哪里开始调查 这个问题 你们这些温文尔
- 您可以查看服务器日志
- 您可以使用类似浏览器的插件来检查ajax请求的状态(与此相关的任何http请求)
- 如果您使用的是IDE,请在调试模式下启动服务器,调试servlet并从那里开始进行故障排除
- 您可以查看服务器日志
- 您可以使用类似浏览器的插件来检查ajax请求的状态(与此相关的任何http请求)
- 如果您使用的是IDE,请在调试模式下启动服务器,调试servlet并从那里开始进行故障排除
连接
(和语句
和结果集
)。您还需要使用finally
块来确保在抛出异常的情况下关闭。以下是一个启动示例:
public List<Entity> list() throws SQLException {
// Declare resources before try.
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
List<Entity> entities = new ArrayList<Data>();
try {
// Acquire resources and query DB in try.
connection = database.getConnection();
statement = connection.createStatement("SELECT id, name, value FROM entity");
resultSet = statement.executeQuery();
while (resultSet.next()) {
Entity entity = new Entity();
entity.setId(resultSet.getLong("id"));
entity.setName(resultSet.getString("name"));
entity.setValue(resultSet.getInteger("value"));
entities.add(entity);
}
} finally {
// Close resources in reversed order in finally.
if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {}
if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}
if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
}
// Return result.
return entities;
}
public List()引发SQLException{
//在尝试之前声明资源。
连接=空;
Statement=null;
ResultSet ResultSet=null;
列表实体=新的ArrayList();
试一试{
//在try中获取资源并查询数据库。
connection=database.getConnection();
语句=connection.createStatement(“从实体中选择id、名称、值”);
resultSet=statement.executeQuery();
while(resultSet.next()){
实体=新实体();
entity.setId(resultSet.getLong(“id”);
entity.setName(resultSet.getString(“name”);
entity.setValue(resultSet.getInteger(“value”);
实体。添加(实体);
}
}最后{
//最后按相反顺序关闭资源。
如果(resultSet!=null),请尝试{resultSet.close();}catch(SQLException logOrIgnore){}
如果(statement!=null),请尝试{statement.close();}catch(SQLException logOrIgnore){}
如果(connection!=null),请尝试{connection.close();}catch(SQLException logOrIgnore){}
}
//返回结果。
返回实体;
}
如果你想提高连接性能,那么你应该考虑使用A,而不是一直保持连接打开。 另见:
连接
(和语句
和结果集
)。您还需要使用finally
块来确保在抛出异常的情况下关闭。以下是一个启动示例:
public List<Entity> list() throws SQLException {
// Declare resources before try.
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
List<Entity> entities = new ArrayList<Data>();
try {
// Acquire resources and query DB in try.
connection = database.getConnection();
statement = connection.createStatement("SELECT id, name, value FROM entity");
resultSet = statement.executeQuery();
while (resultSet.next()) {
Entity entity = new Entity();
entity.setId(resultSet.getLong("id"));
entity.setName(resultSet.getString("name"));
entity.setValue(resultSet.getInteger("value"));
entities.add(entity);
}
} finally {
// Close resources in reversed order in finally.
if (resultSet != null) try { resultSet.close(); } catch (SQLException logOrIgnore) {}
if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}
if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
}
// Return result.
return entities;
}
public List()引发SQLException{
//在尝试之前声明资源。
连接=空;
Statement=null;
ResultSet ResultSet=null;
列表实体=新的ArrayList();
试一试{
//在try中获取资源并查询数据库。
connection=database.getConnection();
语句=connection.createStatement(“从实体中选择id、名称、值”);
resultSet=statement.executeQuery();
while(resultSet.next()){
实体=新实体();
entity.setId(resultSet.getLong(“id”);
entity.setName(resultSet.getString(“name”);
entity.setValue(resultSet.getInteger(“value”);
实体。添加(实体);
}
}最后{
//最后按相反顺序关闭资源。
如果(resultSet!=null),请尝试{resultSet.close();}catch(SQLException logOrIgnore){}
如果(statement!=null),请尝试{statement.close();}catch(SQLException logOrIgnore){}
如果(connection!=null),请尝试{connection.close();}catch(SQLException logOrIgnore){}
}
//返回结果。
返回实体;
}
如果你想提高连接性能,那么你应该考虑使用A,而不是一直保持连接打开。 另见: