Pessoal,
Temos aqui em uma faculade um aplicativo desenvolvido em JSP + JSF que emite relatórios da pós-graduação.
O aplicativo foi desenvolvido utilizando estas duas tecnologias supracitadas e internamente ele chama relatório feitos com a dupla iReport/JasperReports.
O problema é o seguinte :
Rodo a aplicação, chamando a URL adequada. Efetuo login. Até aí tudo bem. Depois de alguns minutos sem utilizar a aplicação, tento utilizá-al novamente.
Os dados contido nos componentes ComboBox, simplesmente somem.
Se eu fizer logoff, chamar a aplicação novamente, efetuar login, volta tudo ao normal.
Gostaria de saber como posso descobrir se o problema está na classe que ConexaoDb que gera conexões com o banco ou na classe que faz o Controle de Sessão.
Segue, abaixo, a classe que gera as conexões.
Por questões de ética e segurança, os valores reais dos parâmetros URL, USER E PASSWORD foram omitidos aqui.
/*
* ConexaoDB.java
*
* Created on 22 de Janeiro de 2009, 09:36
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package relatorioprpg;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConexaoDB {
private static Connection conn = null;
private ConexaoDB() {
}
private static Connection getConnection( ) throws ClassNotFoundException, SQLException {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "ulr do driver";
String user = "user";
String password = "password";
Class.forName(driver);
conn = DriverManager.getConnection( url, user, password );
return conn;
}
// public static Connection getInstance() throws ClassNotFoundException, SQLException {
public synchronized static Connection getInstance() throws ClassNotFoundException, SQLException {
if (conn == null) {
conn = ConexaoDB.getConnection();
}
return conn;
}
public void closeConnection() {
if(conn != null) {
try {
conn.close();
}
catch (SQLException e) {
System.out.println("\n>> Problema ao fechar conexao\n");
e.printStackTrace();
}
}
}
public void finalize(){
closeConnection();
}
}
Será que o problema está nela ? Há algum problema nesta classe com relação à implementação do padrão de projeto SINGLETON ?
Alguém poderia me ajudar a eliminar a possibilidade do problema estar na conexão, se for o caso.
Vou falar com a pessoa eu desenvolveu a aplicação e pedir a ela o código da classe que faz o controle de sessão.
Em breve, postarei ele aqui.
Agradece,
Max Carvalho