Quando dá esse erro (na verdade um warning, no log do Glassfish 2) quer dizer que alguma parte do código abriu uma conexão ao banco e não fechou? Como detectar onde está ocorrendo?
Pelo código, parece estar fechando a conexão:
public Requisitante obterRequisitante(Long codigo){
Requisitante req = null;
String consulta = "SELECT * FROM Requisitante WHERE codigoRequisitanteSD = '"+ codigo +"' ";
try {
banco = BD.getInstancia();
banco.conectarMysql();
rs = banco.executaConsulta(consulta);
while (rs.next()) {
req = new Requisitante(codigo, rs.getString("nome"), rs.getString("categoria"),
null, rs.getString("email"), null, null, rs.getString("telefone"), rs.getString("cargo"), null);
}
} catch (Exception e) {
new log(": Erro obtendo requisitante" + e.getMessage());
} finally {
banco.fechar();
}
return req;
}