Hibernate não grava no banco, help!

3 respostas
Javabuntu

Pessoal to tentando usar o hibernate, preciso pra um projeto que está iniciando, já estudei muito sobre ele ultimamente, na prática não consegui rodar, e pesquisei geral e aparentemente não acho o erro: i formulário roda, quando clico em cadastrar ele da erro do tomcat http 500, se nao me engano eh porque nao acha a base de dados, mas conferi tudo, caso alguém ache algum erro vejam o código.
quem puder ajudar valeu!

formulário com 3 campos pra cadastrar no banco, básico so pra exemplo mesmo: index.jsp
meu backing bean
public class userBean {
    
   private Usuario usuario;
    
   private UsuarioFacade userFacade = new UsuarioFacadeImpl();
    
      public String Cadastra(){
		userFacade.usuarioSalvar(usuario);
                    return "sucesso";
     }
	
      public List<Usuario> getUsuarios(){
		return userFacade.usuarioListar();
    }
        
}
Meu DAO Generico
public abstract class GenericDAOImpl<T, PK extends Serializable> implements GenericDAO<T, PK>{
   public final Class<T> objectClass; 
   private Session session;

    public GenericDAOImpl(final Class<T> objectClass) {
        this.objectClass=objectClass;
    }
    
    public Class<T> getObjectClass(){
       return this.objectClass;
    }
    
  
    public void salvar (final T object){
        session = HibernateUtil.getInstance();
        Transaction tx = null;
        try{
            tx = session.beginTransaction();
            session.save(object);
            tx.commit();
        } catch(final HibernateException e){
            e.printStackTrace();
            tx.rollback();
          }
        finally{
            session.close();
        }
 }
    
       public List<T> listar() {
            session = HibernateUtil.getInstance();
            final Criteria c = session.createCriteria(this.objectClass);
            return c.list();
       }
   protected abstract Criteria addFkFields(Criteria c, T Example);
             
}
Meu USUARIO DAO
public class UsuarioDAOImpl extends GenericDAOImpl<Usuario, String> {
    public UsuarioDAOImpl() {
        super(Usuario.class);
    }

    protected Criteria addFkFields(Criteria c, Usuario example) {
        return c;
    }
}
USUARIO FACADE
public class UsuarioFacadeImpl implements UsuarioFacade {
    
    private GenericDAO dao = new UsuarioDAOImpl();
    
    public void usuarioSalvar(Usuario usuario) {
        dao.salvar(usuario);
    }

    public List<Usuario> usuarioListar() {
        return dao.listar();
    }
    
}
E AQUI O USUARIO
@Entity
@Table(name="usuario")
public class Usuario implements Serializable {
    
    @Column(name="nome")
     private String nome;
    
    @Id
    @Column(name="usuario")
     private String login;
     
    @Column(name="senha")
     private String senha;
    public Usuario() {
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
    
}
A HIBERNATE UTILITÁRIA
public class HibernateUtil {
    
   private static final SessionFactory sessionFactory;
   private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
   
   static {
       try {
           sessionFactory = new AnnotationConfiguration().configure("hibernate.cfg.xml").buildSessionFactory();
          
       } catch (Throwable t) {
           throw new ExceptionInInitializerError(t);
           
       }
   }
   
   public static Session getInstance(){
        Session session = (Session) threadLocal.get();
        session = sessionFactory.openSession();
        threadLocal.set(session);
        return session;
   }
    
}
E MEU HIBERNATE CONFIG
<hibernate-configuration>
- <session-factory>
- <!--  Debug 
  --> 
  <property name="hibernate.show_sql">true</property> 
  <property name="hibernate.format_sql">true</property> 
  <property name="hibernate.use_sql_comments">true</property> 
- <!--  Config 
  --> 
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/teste</property> 
  <property name="hibernate.connection.username">root</property> 
  <property name="hibernate.connection.password">root</property> 
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
  <mapping class="model.Usuario" /> 
- <!--   thread is the short name for
			org.hibernate.context.ThreadLocalSessionContext
			and let Hibernate bind the session automatically to the thread
		
  --> 
  <property name="current_session_context_class">thread</property> 
  </session-factory>
  </hibernate-configuration>

Todos os imports corretos, todo código sem erro, porém não funfa! alguém ajuda nessa ai, ocultei apenas as interfaces, GenericDAO, UsuarioFacade. no resto o exemplo que tentei está ai mas nao roda, banco normal, fiz uma inclusão normal usando conexão com PreparedStatement...
Desculpe o tamanho do post, mas se alguém souber ai VALEU...

3 Respostas

paulo.ubuntu

Copia a Exceção Gerada pelo TomCat, para vermos o que podemos ajudar

Abraços

S

você está usando Spring para injetar um novo Usuario no seu BackinBean ??

caso não, você deve instanciar um novo Usuario…

Javabuntu

soudaniel_01:
você está usando Spring para injetar um novo Usuario no seu BackinBean ??

caso não, você deve instanciar um novo Usuario…

eh eu tava usando spring annotations, e tirei as referencias pra tentar primeiro resolver o hibernate, realmente eu esqueci do new(), mas o erro continua o mesmo…
este é o log que sai no logtomcat quando clico em cadastrar

05/11/2007 14:50:35 org.apache.catalina.core.ApplicationContext log SEVERE: #{Page1.button1_action}: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError javax.faces.FacesException: #{Page1.button1_action}: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98) at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57) at javax.faces.component.UICommand.broadcast(UICommand.java:332) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:198) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:619) Caused by: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:150) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92) ... 28 more Caused by: java.lang.ExceptionInInitializerError at util.HibernateUtil.<clinit>(HibernateUtil.java:31) at DAO.GenericDAOImpl.salvar(GenericDAOImpl.java:43) at facade.UsuarioFacadeImpl.usuarioSalvar(UsuarioFacadeImpl.java:27) at teste.Page1.button1_action(Page1.java:246) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146) ... 29 more Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException at util.HibernateUtil.<clinit>(HibernateUtil.java:28) ... 37 more 05/11/2007 14:50:35 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet Faces Servlet threw exception com.sun.rave.web.ui.appbase.ApplicationException: #{Page1.button1_action}: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.cleanup(ViewHandlerImpl.java:559) at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:276) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:198) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:619) Caused by: javax.faces.FacesException: #{Page1.button1_action}: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98) at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57) at javax.faces.component.UICommand.broadcast(UICommand.java:332) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:401) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:95) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213) ... 20 more Caused by: javax.faces.el.EvaluationException: java.lang.ExceptionInInitializerError at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:150) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:92) ... 28 more Caused by: java.lang.ExceptionInInitializerError at util.HibernateUtil.<clinit>(HibernateUtil.java:31) at DAO.GenericDAOImpl.salvar(GenericDAOImpl.java:43) at facade.UsuarioFacadeImpl.usuarioSalvar(UsuarioFacadeImpl.java:27) at teste.Page1.button1_action(Page1.java:246) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146) ... 29 more Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException at util.HibernateUtil.<clinit>(HibernateUtil.java:28) ... 37 more

Criado 3 de novembro de 2007
Ultima resposta 5 de nov. de 2007
Respostas 3
Participantes 3