Problema com geração de base de dados no Hibernate

2 respostas
pauloperes

Olá a todos,

Seguinte estou tentado colocar pra rodar um sistema que faz a geração das tabelas na minha aplicação, mas num rola de jeito nenhum, é uma aplicação Web, o pior é que estou fazendo baseado em uma aplicação desktop que funciona, vejam:

Classe para geração da base de dados

package lagg.util.banco;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import lagg.beans.Aluno;
import lagg.beans.Frequencia;
import lagg.beans.Usuario;
import org.hibernate.tool.hbm2ddl.SchemaUpdate;

public class GeraDB {
    private AnnotationConfiguration cfg = new AnnotationConfiguration();
    
    public GeraDB(){
    }
    
    public void Exporta(){
        AnnotationConfiguration cfg = new AnnotationConfiguration();
        cfg.addAnnotatedClass(lagg.beans.Aluno.class);
        cfg.addAnnotatedClass(lagg.beans.Frequencia.class);
        cfg.addAnnotatedClass(lagg.beans.Usuario.class);
        cfg.setProperty( "hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect" );
        cfg.setProperty( "hibernate.connection.driver_class", "org.postgresql.Driver" );
        cfg.setProperty( "hibernate.connection.url", "jdbc:postgresql:struts" );
        cfg.setProperty( "hibernate.connection.username", "postgres" );
        cfg.setProperty( "hibernate.connection.password", "kamikaze" );
        cfg.setProperty( "hibernate.connection.autocommit", "true" );
        cfg.setProperty( "hibernate.connection.show_sql", "true");
        
        SchemaExport export = new SchemaExport(cfg);
        export.create(true,true);
    }
}

Agora a minha action

package lagg.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import lagg.util.banco.GeraDB;

public class exportaDB extends Action {
    public ActionForward execute (ActionMapping map,
            ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response           
            ) throws Exception {
        GeraDB gerador = new GeraDB();
        
        
        try{
            gerador.Exporta();            
        } catch (Exception e){
            return map.findForward("erro");
        }
        
        return map.findForward("sucesso");
    }
}

E vejam os erros:

type Exception report

message 

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

exception 

javax.servlet.ServletException: Servlet execution threw an exception
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


root cause 

java.lang.NoSuchMethodError: org.hibernate.cfg.Mappings.<init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Lorg/hibernate/cfg/NamingStrategy;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
	org.hibernate.cfg.ExtendedMappings.<init>(ExtendedMappings.java:42)
	org.hibernate.cfg.AnnotationConfiguration.createExtendedMappings(AnnotationConfiguration.java:72)
	org.hibernate.cfg.AnnotationConfiguration.addAnnotatedClass(AnnotationConfiguration.java:44)
	lagg.util.banco.GeraDB.Exporta(GeraDB.java:18)
	lagg.actions.exportaDB.execute(exportaDB.java:22)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)


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

Se alguém puder dar uma ajuda.

Valeu,

Paulo Henrique

2 Respostas

Paulo_Silveira

Bem estranho. e o message da NoSuchMethodError ta vindo mais estranho ainda. Da uma olhada se tem root cause nos logs do tomcat e manda pra gente.

Outra coisa, seu codigo ta fora das convencoes da sun: classes com letras minusculas e metodos com letras maisculas, alem do nome do pacote fora da convencao br.com.empresa.projeto. Sim, eu sou chato. :slight_smile:

pauloperes

Paulo,

Bom primeiro obrigado pelas dicas, e segundo o root cause ta assim:

root cause 

java.lang.NoSuchMethodError: org.hibernate.cfg.Mappings.<init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/List;Ljava/util/List;Lorg/hibernate/cfg/NamingStrategy;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
	org.hibernate.cfg.ExtendedMappings.<init>(ExtendedMappings.java:42)
	org.hibernate.cfg.AnnotationConfiguration.createExtendedMappings(AnnotationConfiguration.java:72)
	org.hibernate.cfg.AnnotationConfiguration.addAnnotatedClass(AnnotationConfiguration.java:44)
	lagg.util.banco.GeraDB.Exporta(GeraDB.java:18)
	lagg.actions.exportaDB.execute(exportaDB.java:22)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

Cara num sei mais o q fazer, e q nem eu te falei, tenho uma aplicação parecida para Desktop e funfa.

Valeu,

Paulo

Criado 22 de julho de 2005
Ultima resposta 22 de jul. de 2005
Respostas 2
Participantes 2