ConexaoHibernateFilter nao funciona

2 respostas
ramonquitane

Boa Tarde a Todos!
Pessoal estou desenvolvendo um sistema do livro “Programação Java para Web” porém travei na classe chamada ConexaoHibernateFilter que implementa Filter.

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import org.hibernate.SessionFactory;

import financeiro.util.HibernateUtil;

public class ConexaoHibernateFilter implements Filter {

private SessionFactory sf;

public void init(FilterConfig config) throws ServletException {

this.sf = HibernateUtil.getSessionFactory();

System.out.println(ConexaoHibernateFilter);

}

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();

} catch (Throwable ex) {

try {

if (this.sf.getCurrentSession().getTransaction().isActive()) {

this.sf.getCurrentSession().getTransaction().rollback();

}

} catch (Throwable t) {

t.printStackTrace();

}

throw new ServletException(ex);

}

}

}

Erro do Console

HTTP Status 500 -


type Exception report

message

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

exception

javax.servlet.ServletException: java.lang.UnsupportedOperationException: The user must supply a JDBC connection
financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:45)

root cause

java.lang.UnsupportedOperationException: The user must supply a JDBC connection

org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)

org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)

org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)

org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)

org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)

org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:345)

$Proxy10.beginTransaction(Unknown Source)

financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:30)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.


Apache Tomcat/6.0.35

Preciso salvar um simples cadastro de usuário mas pelo pouco que eu entendo minha aplicação parece que não está executando essa classe ConexaoHibernateFilter.

UsuarioDAOHibernate

package financeiro.usuario;

import java.util.List;

import org.hibernate.Query;

import org.hibernate.Session;

public class UsuarioDAOHibernate implements UsuarioDAO {

private Session session;

public void setSession(Session session){

this.session = session;

}

@Override
public void salvar(Usuario usuario) {

this.session.save(usuario);
// TODO Auto-generated method stub

}

@Override
public void atualizar(Usuario usuario) {

this.session.update(usuario);
// TODO Auto-generated method stub

}

@Override
public void excluir(Usuario usuario) {

this.session.delete(usuario);
// TODO Auto-generated method stub

}

<a class="mention" href="/u/override">@Override</a>

public Usuario carregar(Integer codigo) {

// TODO Auto-generated method stub

return (Usuario) this.session.get(Usuario.class, codigo);

}
<a class="mention" href="/u/override">@Override</a>

public Usuario buscaPorLogin(String login) {

// TODO Auto-generated method stub

String hql = "select u from Usuario u where u.login = :login ";

Query consulta = this.session.createQuery(hql);

consulta.setString(“login”, login);

return (Usuario) consulta.uniqueResult();

}
<a class="mention" href="/u/override">@Override</a>

public List listar() {

// TODO Auto-generated method stub

return this.session.createCriteria(Usuario.class).list();

}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?> FinanceiroWeb index.html index.htm index.jsp default.html default.htm default.jsp Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.jsf conexaoFilter financeiro.web.filter.ConexaoHibernateFilter conexaoFilter *.jsf

Desde ja agradeço pela ajuda.

2 Respostas

Hebert_Coelho

Onde você está configurando a conexão JBDC?

ramonquitane

Esta no hibernate.cfg

<?xml version="1.0" encoding="UTF-8"?> org.hibernate.dialect.MySQL5InnoDBDialect thread update
<mapping class="financeiro.usuario.Usuario"/>
Criado 13 de fevereiro de 2012
Ultima resposta 13 de fev. de 2012
Respostas 2
Participantes 2