Erro em Teste

3 respostas
G
Caros Amigos, 
Estou com um erro no insert e não conseguindo acerta-lo. Segue a classe DAOTbCliente:
package dao;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import vo.Cliente;

public class DAOTbCliente 
{
    private Session session;
    
    public DAOTbCliente()
    {
        session = HibernateUtil.getSessionFactory().getCurrentSession(); //O PRIMEIRO ERRO DIRECIONA PARA ESTA LINHA 
    }
    public List listaClientes()
    {
        Transaction t = session.beginTransaction();
        List lista = session.createQuery("from cliente order by nome").list();
        t.commit();
        
        if(lista.isEmpty())
        {
            return null;
        }
        else
        {
            return lista;
        }
    }
    public boolean adicionar(Cliente vo)
    {
        Transaction t = session.beginTransaction();
        session.save(vo);
        t.commit();
        return true;
    }
    public boolean alterar(Cliente vo)
    {
        Transaction t = session.beginTransaction();
        session.update(vo);
        t.commit();
        return true;
    }
    public boolean deletar(Cliente vo)
    {
        Transaction t = session.beginTransaction();
        session.delete(vo);
        t.commit();
        return true;
    }
    public Cliente consultaPorId(Integer id)
    {
        Transaction t = session.beginTransaction();
        List lista = session.createQuery("from cliente where id_cliente=" + id.intValue()).list();
        
        if(lista.isEmpty())
        {
            return null;
        }
        else
        {
            return (Cliente) lista.get(0);
        }
    }
}

Aqui é minha classe de Teste:

package teste;

import dao.DAOTbCliente;
import vo.Cliente;

public class testeAdicionar 
{
    public static void main (String [] args)
    {
        //gravando dados nas variaveis
        String nome = ("Nome de teste");
        String email = ("[email removido]");
        Long telefone = Long.parseLong("88995566");
        String cpf = ("[telefone removido]");
        String sexo = ("M");
        String data = ("10/12/2013");
        
        //formatando a data
        String auxDt = data;
        int ano=Integer.parseInt(auxDt.substring(6,10)) - 1900;
        int mes=Integer.parseInt(auxDt.substring(3,5)) - 1;
        int dia=Integer.parseInt(auxDt.substring(0,2));
        java.sql.Date dtSQL = new java.sql.Date(ano, mes, dia);
        
        //montando o objeto
        Cliente vo = new Cliente();
        vo.setNome(nome);
        vo.setEmail(email);
        vo.setTelefone(telefone);
        vo.setCpf(cpf);
        vo.setSexo(sexo);
        vo.setDatanascimento(dtSQL);
        
        //gravando na conexao
        DAOTbCliente dao = new DAOTbCliente(); // O SEGUNDO ERRO DIRECIONA PARA ESTA LINHA 
        
        if(dao.adicionar(vo))
        {
            System.out.println("Cliente cadastrado com sucesso!");
        }
        else
        {
            System.out.println("Erro ao cadastrado novo Cliente.");
        }
    }
}
Este é o erro que aparece:
run:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Program%20Files/NetBeans%207.4/java/modules/ext/hibernate/slf4j-simple-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Program%20Files%20(x86)/glassfish-4.0/glassfish/modules/weld-osgi-bundle.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
200 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
212 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.10.Final
223 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
229 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
244 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
322 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
322 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
387 [main] WARN org.hibernate.util.DTDEntityResolver - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
413 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : vo/Cliente.hbm.xml
547 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
611 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: vo.Cliente -> cliente
638 [main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
Dez 11, 2013 7:13:13 AM org.hibernate.validator.internal.util.Version <clinit>
INFO: HV000001: Hibernate Validator 5.0.0.Final
880 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
885 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
886 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
886 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
936 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/crud_cliente?zeroDateTimeBehavior=convertToNull
936 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=root}
1228 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQLDialect
1241 [main] INFO org.hibernate.cfg.SettingsFactory - Database ->
       name : MySQL
    version : 5.1.53-community-log
      major : 5
      minor : 1
1241 [main] INFO org.hibernate.cfg.SettingsFactory - Driver ->
       name : MySQL-AB JDBC Driver
    version : mysql-connector-java-5.1.20 ( Revision: [email removido]-20111003110438-qfydx066wsbydkbw )
      major : 5
      minor : 1
1242 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
1244 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
1244 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
1244 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
1244 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
1244 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
1245 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
1245 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
1245 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
1246 [main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2
1246 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
1246 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
1246 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
1246 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
1246 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
1248 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
1249 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
1249 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1249 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1249 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1249 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
1250 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1251 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1257 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1257 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1257 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1257 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1257 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): disabled
1323 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [clob] overrides previous : org.hibernate.type.ClobType@287ae776
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Clob] overrides previous : org.hibernate.type.ClobType@287ae776
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [characters_clob] overrides previous : org.hibernate.type.PrimitiveCharacterArrayClobType@1cf208bd
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [blob] overrides previous : org.hibernate.type.BlobType@561bbf23
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Blob] overrides previous : org.hibernate.type.BlobType@561bbf23
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_clob] overrides previous : org.hibernate.type.MaterializedClobType@37a1beff
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_materialized_blob] overrides previous : org.hibernate.type.WrappedMaterializedBlobType@5c0273e1
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@2505e7f8
1329 [main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_characters_clob] overrides previous : org.hibernate.type.CharacterArrayClobType@26c05dc5
1536 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
Exception in thread "main" org.hibernate.HibernateException: No CurrentSessionContext configured!
	at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:685)
	at dao.DAOTbCliente.<init>(DAOTbCliente.java:14)
	at teste.testeAdicionar.main(testeAdicionar.java:40)
Java Result: 1

Por favor, que puder informar-me onde estou errando, agradeço.

3 Respostas

Ruttmann

Já experimentou pesquisar no Google?

Existe explicação pra esse erro no site do desenvolvedor(e esse link inclusive é apontado no seu erro): http://www.slf4j.org/codes.html#multiple_bindings

Aqui também: http://stackoverflow.com/questions/8921382/maven-slf4j-version-conflict-when-using-two-different-dependencies-that-requi

E aqui: http://stackoverflow.com/questions/12065658/how-to-use-slf4j-when-there-is-multiple-slf4j-bindings

Você deve ter colocado os .jar do SLF4J no seu projeto, certo? Lendo a mensagem de erro dá pra notar claramente que já existem recursos no servidor Glassfish pra dar conta do recado, ou seja, ele não sabe de onde buscar o recurso (do .jar no projeto ou do .jar no Glassfish).

igor_ks

Na verdade o erro está aqui:

Mas a dica do Ruttman continua (e sempre) totalmente válida, pesquisa em um site de busca. Fiz uma pesquisa rapida no Google e achei rapidamente, e uma das respostas está até aqui no GUJ

G

Meus caros,

Assim que chegar em casa, irei analisar suas dicas, e qualquer coisa posto aqui.

Mais uma vez, agradeço.

Criado 11 de dezembro de 2013
Ultima resposta 11 de dez. de 2013
Respostas 3
Participantes 3