programing

스프링 부트 ClassNotFoundException org.springframework.core.metrics.응용 프로그램 부팅

goodsources 2023. 4. 1. 09:07
반응형

스프링 부트 ClassNotFoundException org.springframework.core.metrics.응용 프로그램 부팅

현재 Spring Boot 및 GCP 데이터 스토리지에서 개념 실증 작업을 하고 있습니다.

나의pom.xml

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <version>2.4.0</version>
</dependency>

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-gcp-data-datastore</artifactId>
  <version>1.2.6.RELEASE</version>
</dependency>

문제: 스프링 부트가 시작되지 않음

애플리케이션을 기동하려고 하면, 다음의 메세지가 표시됩니다.

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:251)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:264)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298)

내가 시도한 것

추가하려고 했습니다.Actuator의존.하지만 그것은 효과가 없었다.나는 내가 놓치고 있는 의존관계가 무엇인지 알 수 없다.클래스 정의는 5.3.0-M2 매뉴얼에 기재되어 있습니다만, 어떤 의존관계에 있는지 알 수 없습니다.

또한 다음 메트릭 종속성을 추가하려고 했습니다.

  • 봄구름-gcp-gcp-supply-disply
  • 봄맞이
  • 봄구름줄기류

저는 findjar.com에서 검색했지만 잘 되지 않았습니다.

가능하다면 나도 그것을 무효로 해도 상관없습니다.


업데이트:

덧붙였습니다.

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.3.1</version>
</dependency>

그러면 새로운 오류가 발생합니다.

존재하지 않는 메서드를 호출하려고 했습니다.다음 위치에서 시행되었습니다.

org.springframework.boot.SpringApplication.run(SpringApplication.java:324)

다음 메서드는 존재하지 않습니다.

'void org.springframework.context.ConfigurableApplicationContext.setApplicationStartup(org.springframework.core.metrics.ApplicationStartup)'

메서드의 클래스 org.springframework.context.Configurable Application Context 는 다음 위치에서 사용할 수 있습니다.

...액션:

org.springframework.context의 호환되는 단일 버전이 포함되도록 응용 프로그램의 클래스 경로를 수정합니다.설정 가능한 응용 프로그램콘텍스트

Spring Boot를 다운그레이드하여 이 문제를 해결할 수 있었습니다.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <version>2.3.3.RELEASE</version>
</dependency>

아직 2.4.0과 호환되지 않는 것 같습니다.

특히 2.3.3을 사용하고 있는지 확인해야 했습니다.다른 문제로 인해 릴리스가 해제되고 최신은 해제되지 않았습니다.

스프링 클라우드의 종속성은 없지만 2.3에서 Spring Boot 2.4로 업그레이드할 때도 동일한 오류가 발생했습니다.

Exception in thread "main" java.lang.NoClassDefFoundError:
 org/springframework/core/metrics/ApplicationStartup

이 스레드의 대화(https://github.com/spring-projects/spring-boot/issues/24880)에서 Spring Framework 5.3.3으로 업그레이드하면 문제가 해결되었습니다.

spring-context JAR 파일의 적절한 버전이 아닌 이전 버전이 로드되어 동일한 문제가 발생하였습니다.

클래스 패스에 오래된 라이브러리의 기억이 없는지 확인합니다.

저도 같은 문제가 있었는데, 다음과 같은 의존관계를 추가하여 해결했습니다.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>5.3.8</version>
</dependency>

저도 같은 문제가 있었습니다만, 다음과 같은 문제가 있었습니다.

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.2.9.RELEASE</version>
        <scope>test</scope>
    </dependency>

다음 버전으로 업그레이드하면 오류가 사라집니다.

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.3.3</version>
        <scope>test</scope>
    </dependency>

spring-cloud를 최신 버전으로 업그레이드하십시오.

이것은 당신의 첫 번째 오류에 직면했을 때 도움이 됩니다.

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup

Stéphane과 Arnaud의 도움에 감사드리며, 트위터 스레드를 확인해 주십시오.

저도 같은 문제가 있었습니다만, 그것은 버전 5.4.x 로 Import 하는 spring-security-ldap 에 의한 것입니다.

spring-security-ldap을 버전 5.5.0으로 업그레이드하면 문제가 해결되었습니다.

Spring Boot 테스트를 라이브러리에 처음 추가할 때 이 문제가 발생했습니다.이 경우 라이브러리에는 Spring Boot 어플리케이션이 없습니다.

이것이 성공했습니다.

@SpringBootApplication
public class TestApplication {
  public static void main(final String[] args) {
    SpringApplication.run(TestApplication.class, args);
  }
}

「」만 spring-boot-starter-test이치노

다른 종속성이 이전 버전의 spring-core에 종속되어 있지 않은지 확인합니다.

이것이 이 오류를 겪고 있는 누군가에게 도움이 되기를 바랍니다.

=> 오류는 다음과 같습니다.

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup

at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:229)
at org.springframework.context.support.GenericApplicationContext.<init>(GenericApplicationContext.java:112)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:67)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:91)

문제의 해결 방법:-

  1. Project folder\ 우클릭\Maven\Update maven project로 이동합니다.
  2. 스프링 버전을 확인합니다(pom.xml-> 속성 표시).
  3. Spring 버전을 이전/새 버전으로 변경합니다.그렇지 않으면 이것을 사용합니다.
 <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <spring.version>5.2.0.RELEASE</spring.version> <!--add this version-->
    </properties>
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
</dependencies>
<dependency>
        <groupId>org.springframework</groupId> <!-- sql dependency for jdbc-->
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
</dependency>
  1. 위의 내용을 추가한 후 저장하십시오(코드 빌드..).
  2. 프로그램 실행

최고의 남자 여러분, 렛츠 투더

는 부츠를 있었다.ClassNotFoundException ApplicationStartup boot version이 gradle, spring boot version의 이었습니다.build.gradle.kts들면 다음과 같습니다.

plugins {
    id("org.springframework.boot") version "2.5.3"
...

}

dependencies {
implementation("org.springframework.boot:spring-boot:2.5.3")
...
}

언급URL : https://stackoverflow.com/questions/65046056/spring-boot-classnotfoundexception-org-springframework-core-metrics-applications

반응형