Hibernate 3.6.3 com Glassfish v3

9 respostas
B

Bom dia pessoal,

Estou com um problema estou tentando utilizar o hibernate 3.6.3 com o glassfish 3 no netbeans 6.9.1 mas não estou conseguindo. O erro está logo abaixo junto com os jars que estou utilizando.
Eu utilizava o hibernate 3.2.5 padrão do netbeans e roda perfeitamente, mas quero ver sobre o envers, de auditoria de banco de dados, que pelo que li desde do hibernate 3.5 já está no core.

Se alguem puder ajudar…

Desde já obrigado.

Erro:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/admin/Meus%20documentos/NetBeansProjects/Outras%20Bibliotecas/Hibernate%203.6.3/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Arquivos%20de%20programas/glassfish-3.0.1/glassfish/modules/weld-osgi-bundle.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Arquivos%20de%20programas/glassfish-3.0.1/glassfish/modules/bean-validator.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
log4j:WARN No appenders could be found for logger (org.hibernate.type.BasicTypeRegistry).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread “main” java.lang.ExceptionInInitializerError
at br.com.dao.Dao.iniciarSessao(Dao.java:16)

Jar’s:

antlr-2.7.6.jar;

commons-collections-3.1.jar;

dom4j-1.6.1.jar;

hibernate3.jar;

hibernate-jpa-2.0-api-1.0.0.Final.jar;

javassist-3.12.0.GA.jar;

jta-1.1.jar;

log4j-1.2.16.jar;

slf4j-api-1.6.1.jar;

slf4j-log4j12-1.6.1.jar;

9 Respostas

luxu

brenoVM:
Exception in thread “main” java.lang.ExceptionInInitializerError
at br.com.dao.Dao.iniciarSessao(Dao.java:16)

seu erro esta nessa classe DAO, o resto para cima e configuração do log…nem precisa se preocupar!!

Polverini

posta a dao para analizarmos

F

Bom dia Breno,

Se não em engano a lib 1.6.1 do slf4j está dando problema com a versão 3.6.3 do Hibernate.
Sendo assim eu baixei a 1.5.11.
Os jar que eu estou utilizando são:

antlr-2.7.6.jar
commons-collections-3.2.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.5.11.jar
slf4j-ext-1.5.11.jar
slf4j-jcl-1.5.11.jar
slf4j-log4j12-1.5.11.jar
slf4j-nop-1.5.11.jar
slf4j-simple-1.5.11.jar

Atenciosamente,

Fábio Barboza de Oliveira

B

Olá pessoal desculpe a demora…

No caso penso que não é a classe dao porque com ela rodo perfeitamente no hibernate 3.2.5.

Vou tentar a dica do Fabio e volto com a resposta

public abstract class Dao {

protected Session sDao;

Transaction tDao;
public void iniciarSessao() {

sDao = SessionFactoryUtil.getInstance().openSession();

}
public void fecharSessao(){

sDao.close();

}
public void erroSessao(){

sDao.getTransaction().rollback();

}
public void salvarDAO(Object o){

iniciarSessao();

tDao = sDao.beginTransaction();

sDao.save(o);

tDao.commit();

fecharSessao();

}
public void alterarDAO(Object o){

iniciarSessao();

tDao = sDao.beginTransaction();

sDao.update(o);

tDao.commit();

fecharSessao();

}
public void excluirDAO(Object o){

iniciarSessao();

tDao = sDao.beginTransaction();

sDao.delete(o);

tDao.commit();

fecharSessao();

}
public abstract void salvar(VO vo);

public abstract void alterar(VO vo);

public abstract void excluir(VO vo);

public abstract VO getById(Long id);

}

public class SessionFactoryUtil {
private static org.hibernate.SessionFactory sessionFactory;

private SessionFactoryUtil(){}

static{
    sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}

public static SessionFactory getInstance(){
    return sessionFactory;
}

public Session openSession(){
    return sessionFactory.openSession();
}

public static void close(){
    if(sessionFactory != null){
        sessionFactory.close();
    }
    sessionFactory = null;
}

}

B

Olá Fábio, valeu pela resposta mas continua com o erro abaixo. Vou verificar se tem algo a ver com o annotations.

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/C:/Arquivos%20de%20programas/glassfish-3.0.1/glassfish/modules/weld-osgi-bundle.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/C:/Arquivos%20de%20programas/glassfish-3.0.1/glassfish/modules/bean-validator.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See <a href="http://www.slf4j.org/codes.html#multiple_bindings">http://www.slf4j.org/codes.html#multiple_bindings</a> for an explanation.

25/04/2011 11:03:09 org.hibernate.annotations.common.Version 

INFO: Hibernate Commons Annotations 3.2.0.Final

25/04/2011 11:03:09 org.hibernate.cfg.Environment 

INFO: Hibernate 3.6.3.Final

25/04/2011 11:03:09 org.hibernate.cfg.Environment 

INFO: hibernate.properties not found

25/04/2011 11:03:09 org.hibernate.cfg.Environment buildBytecodeProvider

INFO: Bytecode provider name : javassist

25/04/2011 11:03:09 org.hibernate.cfg.Environment 

INFO: using JDK 1.4 java.sql.Timestamp handling

25/04/2011 11:03:09 org.hibernate.cfg.Configuration configure

INFO: configuring from resource: /hibernate.cfg.xml

25/04/2011 11:03:09 org.hibernate.cfg.Configuration getConfigurationInputStream

INFO: Configuration resource: /hibernate.cfg.xml

25/04/2011 11:03:09 org.hibernate.util.DTDEntityResolver resolveEntity

AVISO: recognized obsolete hibernate namespace <a href="http://hibernate.sourceforge.net/">http://hibernate.sourceforge.net/</a>. Use namespace <a href="http://www.hibernate.org/dtd/">http://www.hibernate.org/dtd/</a> instead. Refer to Hibernate 3.6 Migration Guide!

25/04/2011 11:03:09 org.hibernate.cfg.Configuration doConfigure

INFO: Configured SessionFactory: null

25/04/2011 11:03:09 org.hibernate.cfg.AnnotationBinder bindClass

INFO: Binding entity from annotated class: br.com.modelo.localidades.Pais

25/04/2011 11:03:09 org.hibernate.cfg.annotations.EntityBinder bindTable

INFO: Bind entity br.com.modelo.localidades.Pais on table Pais

Exception in thread “main” java.lang.ExceptionInInitializerError

at br.com.dao.Dao.iniciarSessao(Dao.java:16)

at br.com.dao.Dao.salvarDAO(Dao.java:28)

at br.com.dao.localidades.PaisDao.salvar(PaisDao.java:18)

at br.com.modelo.Main.main(Main.java:22)

Caused by: org.hibernate.AnnotationException: Associations marked as mappedBy must not define database mappings like @JoinTable or @JoinColumn: br.com.modelo.localidades.Pais.estado

at org.hibernate.cfg.annotations.CollectionBinder.bind(CollectionBinder.java:499)

at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1979)

at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:796)

at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)

at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4008)

at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3962)

at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1371)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1829)

at br.com.dao.util.SessionFactoryUtil.(SessionFactoryUtil.java:17)

… 4 more
Jose111

Os jar : weld-osgi-bundle.jar e bean-validator.jar tema classe StaticLoggerBinder em comum e isto esta dando conflito…

B

Olá jase111 valeu pela resposta mas os dois jar’s do glassfish não entram em conflito quando utilizo o hibernate 3.2.5.

F

Oi Breno,

Olhando por cima, não parece ser problema de bibliotecas e sim de Mapeamento.
Apenas por desencargo de conciência, tente mapear um entidade simples sem nenhum relacionamento.
Se preferir coloque @Transient nos relacionamentos, apenas para testar se a configuração está ok.

Atenciosamente,

Fábio

B

Valeu Fabio…

Cara era problema de relacionamento mesmo. Vou dar uma pesquisada porque o relacionamento funcionava no hibernate 3.2.5 e não funciona no 3.6.3.

mais uma vez obrigado!

Criado 25 de abril de 2011
Ultima resposta 25 de abr. de 2011
Respostas 9
Participantes 5