Olá pessoal! Estou com uma dúvida ou um problema.
Seguinte: Eu estou desenvolvendo uma aplicação com JSF + Hibernate. Antes de eu começar com o JSF eu abria e fechava a session do hibernate toda hora. Beleza funcionava perfeitamente, mas agora preciso abrir por filtros pois ele dá problema daqueles quando você dá um forward depois de fechar a session. Então fis o filtro e está funcionando perfeitamente(estava).
package Filtros;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HibSession implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
DAOs.HibSession.AbreSession();
chain.doFilter(request, response);
DAOs.HibSession.FechaSession();
}
public void destroy() {
}
}
Classe HibSession:
package DAOs;
import org.hibernate.Session;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibSession {
protected static Session session;
public static void AbreSession() {
AnnotationConfiguration conf = new AnnotationConfiguration();
conf.configure();
HibSession.session = conf.buildSessionFactory().openSession();
}
public static void FechaSession() {
HibSession.session.close();
}
}
E todos os meus DAOs estendem dessa classe e eles pegam a session direto dela.
O Problema é que aparentemente essa session não está fechando a cada vez que abre pois me deparei com um erro de muitas conexões agora:
HTTP Status 500 -
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: Cannot open connection
root cause
javax.faces.el.EvaluationException: org.hibernate.exception.JDBCConnectionException: Cannot open connection
root cause
org.hibernate.exception.JDBCConnectionException: Cannot open connection
root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.1 logs.
GlassFish Server Open Source Edition 3.1.1
Obrigado pessoal!