Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Erro Exception in thread "main" java.lang.NoClassDefFoundError: antlr/RecognitionException

Exception in thread "main" java.lang.NoClassDefFoundError: antlr/RecognitionException Caused by: java.lang.ClassNotFoundException: antlr.RecognitionException

Já tentei solucionar incluindo um pacote antlr-4.5.3-complete.jar mas não resolveu.

Meu código:

package br.com.caelum.teste;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.caelum.financas.modelo.Conta;
import br.com.caelum.financas.modelo.Movimentacao;
import br.com.caelum.financas.modelo.TipoMovimentacao;
import br.com.caelum.financas.util.JPAUtil;

public class TestaConsulta {

    public static void main(String[] args) {

        EntityManager em = new JPAUtil().getEntityManager();

        Conta conta = new Conta();
        conta.setId(2);

        Query query = em.createQuery("select m from Movimentacao m where m.conta = :pConta" + "and m.tipoMovimentacao = :pTipo" + "order by m.valor desc");

        query.setParameter("pConta", conta);
        query.setParameter("pTipo", TipoMovimentacao.SAÍDA);

        List<Movimentacao> movimentacoes = query.getResultList();

        for (Movimentacao m : movimentacoes) {
            System.out.println("\nDescricao ..: " + m.getDescricao());
            System.out.println("Valor ......: R$ " + m.getValor());
        }
        em.close();
    }
}
6 respostas

Olá Marcelo, tudo bem?

Poderia por favor encaminhar o stack trace? Assim ficará mais fácil de encontrarmos uma possível causa.

Abs

Oct 03, 2016 6:33:35 PM org.hibernate.annotations.common.Version INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} Oct 03, 2016 6:33:35 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.2.0.Final} Oct 03, 2016 6:33:35 PM org.hibernate.cfg.Environment INFO: HHH000206: hibernate.properties not found Oct 03, 2016 6:33:35 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Oct 03, 2016 6:33:36 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!) Oct 03, 2016 6:33:36 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 20 Oct 03, 2016 6:33:36 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000006: Autocommit mode: true Oct 03, 2016 6:33:36 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000401: using driver [com.ibm.db2.jcc.DB2Driver] at URL [jdbc:db2://maragogi:3800/justica] Oct 03, 2016 6:33:36 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000046: Connection properties: {user=saraiva, password=**, autocommit=true, release_mode=auto} Oct 03, 2016 6:33:36 PM org.hibernate.dialect.Dialect INFO: HHH000400: Using dialect: org.hibernate.dialect.DB2Dialect Oct 03, 2016 6:33:36 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation INFO: HHH000422: Disabling contextual LOB creation as connection was null Oct 03, 2016 6:33:37 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory Oct 03, 2016 6:33:37 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory INFO: HHH000397: Using ASTQueryTranslatorFactory Oct 03, 2016 6:33:37 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000228: Running hbm2ddl schema update Oct 03, 2016 6:33:37 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000102: Fetching database metadata Oct 03, 2016 6:33:38 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000396: Updating schema Oct 03, 2016 6:33:38 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000261: Table found: SARAIVA.CONTA Oct 03, 2016 6:33:38 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000037: Columns: [numero, banco, id, agencia, titular] Oct 03, 2016 6:33:38 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000108: Foreign keys: [] Oct 03, 2016 6:33:38 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000126: Indexes: [sql160919182426860] Oct 03, 2016 6:33:39 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000261: Table found: SARAIVA.MOVIMENTACAO Oct 03, 2016 6:33:39 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000037: Columns: [data, tipomovimentacao, conta_id, valor, id, descricao] Oct 03, 2016 6:33:39 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000108: Foreign keys: [fk257eb923c547677d] Oct 03, 2016 6:33:39 PM org.hibernate.tool.hbm2ddl.TableMetadata INFO: HHH000126: Indexes: [sql160919182426970] Oct 03, 2016 6:33:39 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000232: Schema update complete Exception in thread "main" java.lang.NoClassDefFoundError: antlr/RecognitionException at org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:59) at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:103) at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80) at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221) at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199) at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1777) at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291) at br.com.caelum.teste.TestaConsulta.main(TestaConsulta.java:22) Caused by: java.lang.ClassNotFoundException: antlr.RecognitionException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 9 more

Olá Marcelo,

Me parece que o problema é a dependência do antlr que foi importado. Tente importar esse antlr ao invés do antlr-complete:

<dependency>
    <groupId>antlr</groupId>
    <artifactId>antlr</artifactId>
    <version>2.7.7</version>
</dependency>

Espero que dê certo!

Abs

Só se eu importar esse na mão também, já que no exercício nós não estamos usando Maven, ou seja, no projeto não há um arquivo pom.xml...

Não consegui localizar um .jar dessa versão 2.7.7. Só encontrei a 4.5.3...

solução!

Cara...esse Hibernate é meio maluco... Consegui um jar da versão 2.7.7 (na verdade estava na pasta que eu baixei em aula anterior, só não sei porque não estava no projeto mas, enfim...) Daí ele começou a reclamar do segundo parâmetro. Tirei o segundo parâmetro do select, daí ele começou a reclamar do "m". Tirei o "m" e ele passou a reclamar da própria palavra "select ". Vi na internet que ela é opcional. Tirei e rodou beleza. Daí fui acrescentando tudo de novo, um de cada vez e agora tudo funciona. Vai saber...