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
}
@Override
public Usuario carregar(Integer codigo) {
// TODO Auto-generated method stub
return (Usuario) this.session.get(Usuario.class, codigo);
}
@Override
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();
}
@Override
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 *.jsfDesde ja agradeço pela ajuda.