HTTP Status 500 - Filter

0 respostas
araujoGo

Senhores, sou iniciante e to com esse impasse para configuração da persistencia utilizando filter, coloquei alguns flags e o código corre normalmente, porém sempre lança a exceção erro HTTP 500. Se alguem puder ajudar com o erro, ou conhecer uma outra forma de configurar essa classe, conto com a ajuda de voces!

Segue a pagina de exceção:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax.servlet.ServletException
	com.financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:48)

root cause

javax.servlet.ServletException
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
	com.financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:34)

root cause

java.lang.StackOverflowError
	java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
	com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:95)
	com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:117)
	com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:58)
	com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:256)
	com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:378)
	com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:358)
	com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
	com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:155)
	com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
	com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
     etc.....
Segue a classe de captura que implementa Filter:
public class ConexaoHibernateFilter implements Filter {

	private SessionFactory	sf;

	public void init(FilterConfig config) throws ServletException {
		this.sf = HibernateUtil.getSessionFactory();
	}

	public void destroy() {
	}

	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws ServletException {

		try {

			this.sf.getCurrentSession().beginTransaction();

			chain.doFilter(servletRequest, servletResponse);

			this.sf.getCurrentSession().getTransaction().commit();
			this.sf.getCurrentSession().close();
			System.out.println("Passei por aqui");
		} catch (Throwable ex) {
			try {
				if (this.sf.getCurrentSession().getTransaction().isActive()) {
					this.sf.getCurrentSession().getTransaction().rollback();
				}
			} catch (Throwable t) {
				t.printStackTrace();
				System.out.println(t.getMessage());
			}
			throw new ServletException(ex);
			
		}
	}

}
Classe com metodos de conexão do Hibernate:
public class HibernateUtil {

	private static final SessionFactory	sessionFactory	= buildSessionFactory();

	private static SessionFactory buildSessionFactory() {
		try {
			AnnotationConfiguration cfg = new AnnotationConfiguration();
			cfg.configure("hibernate.cfg.xml");
			return cfg.buildSessionFactory();
		} catch (Throwable e) {
			System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: " + e);
			throw new ExceptionInInitializerError(e);
		}
	} 

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}
Nota que as linhas apontadas na exceção são:
chain.doFilter(servletRequest, servletResponse);
e
throw new ServletException(ex);

A configuração do web.xml está correta pois consigo visualizar os flags na hora da requisição... Qualquer ajuda será bem vinda!

Criado 27 de março de 2013
Respostas 0
Participantes 1