【问题标题】:Error: java.lang.NoClassDefFoundError: antlr/RecognitionException错误:java.lang.NoClassDefFoundError:antlr/RecognitionException
【发布时间】:2017-03-20 04:31:41
【问题描述】:

我有 JPA + MySQL + Thymeleaf 的 Spring Boot 项目,但 Eclipse 显示错误。

在 marven 依赖中找到了 antlr 2.7.7 jar 库。

我在 pom.xml 中的依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

antlr 是 JPA 和 Hibernate 的依赖项,但控制台显示:

java.lang.ClassNotFoundException: antlr.RecognitionException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_111]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_111]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_111]
...

我创建了模型和存储库,但是当调用 findAll() 函数时,Web 应用程序崩溃了。

在控制器中:

@Autowired
private CategoryRepository categoryRepository;
...
Iterable<CategoryModel> categories = categoryRepository.findAll();

在存储库中:

public interface CategoryRepository extends CrudRepository<CategoryModel, BigInteger>{

    List<CategoryModel> findById(BigInteger id);
}

会发生什么?

【问题讨论】:

  • 你是如何运行你的应用程序的?
  • 右键项目文件夹->运行方式->Spring Boot App
  • 使用 maven-assembly-plugin 添加新设置,但显示相同的异常:(

标签: java hibernate maven spring-boot antlr


【解决方案1】:

我的解决方案:本地存储库已损坏,从 Linux 中删除文件夹 ~/.m2/ 并重新加载 eclipse。

【讨论】:

  • 我也这样做,但我只删除 ~/.m2/repository/antlr
猜你喜欢
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 2015-03-25
  • 2013-05-15
相关资源
最近更新 更多