【问题标题】:Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory in Spring tool suite线程“main”中的异常 java.lang.NoClassDefFoundError: Spring 工具套件中的 org/slf4j/LoggerFactory
【发布时间】:2015-10-30 19:19:55
【问题描述】:

我正在使用 Spring 工具套件(版本:3.7.1.RELEASE)并尝试创建简单的 spring maven 项目。我在 pom.xml 中添加了依赖项。当我使用我的桌面时,它工作正常,当我尝试在我的笔记本电脑中使用相同的东西时,它给了我以上错误。我也尝试过手动下载 jar 文件,但没有成功。谁能帮我?我的 pom.xml 附在下面。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatioenter code heren="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.springframework.samples</groupId>
      <artifactId>Springtesting</artifactId>
      <version>0.0.1-SNAPSHOT</version>
  <properties>

        <!-- Generic properties -->
    <java.version>1.6</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- Spring -->
    <spring-framework.version>3.2.3.RELEASE</spring-framework.version>

    <!-- Hibernate / JPA -->
    <hibernate.version>4.2.1.Final</hibernate.version>

    <!-- Logging -->
    <logback.version>1.0.13</logback.version>
    <slf4j.version>1.7.5</slf4j.version>

    <!-- Test -->
    <junit.version>4.11</junit.version>

</properties>

<dependencies>
    <!-- Spring and Transactions -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring-framework.version}</version>
    </dependency>

    <!-- Logging with SLF4J & LogBack -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
        <scope>runtime</scope>
    </dependency>

    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
    </dependency>


    <!-- Test Artifacts -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring-framework.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>

</dependencies> 

【问题讨论】:

  • 在您的笔记本电脑中,您是否尝试过以下操作:1) 如果正确指向或引用了 REPO 2) 如果您尝试使用 jar,它们需要位于类路径中。我建议先清洁,然后再建造。
  • 您能指导我正确引用 REPO 吗?
  • “使用相同的东西”到底是什么意思?它可能与 settings.xml 有关。
  • 这很奇怪。据我所知,您正确配置了 logback 和 slf4j 的依赖项(并且具有正确的范围)。您是在构建 jar 文件还是 war 文件?在 jar 中,您必须手动包含依赖项,请参见此处:maven.apache.org/plugins/maven-assembly-plugin/…
  • @hotzst 我的意思是相同的版本、相同的代码和相同的依赖项。

标签: java maven slf4j spring-tool-suite


【解决方案1】:

我已将 java 从 1.7 升级到 1.8,并将 jre 1.8 作为 STS 中的运行时环境。这解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2014-06-08
    • 2016-11-28
    • 1970-01-01
    相关资源
    最近更新 更多