Sự cố ClassNotFoundException trong dự án Maven

Aug 29 2020

Tôi được giao hoàn thành một dự án như một phần của đơn xin việc. Công ty gửi cho tôi cài đặt các yêu cầu sau:

  • OpenJDK 1.8
  • Maven 3.x
  • Git 2.x
  • MySQL 5.x.

Tôi đang cố gắng chạy ứng dụng từ phía máy chủ (java) và nó ném ra ngoại lệ này (có thể là vấn đề phụ thuộc nhưng tôi không thể tìm thấy nó):

2020-08-30 07: 34: 56.850 ERROR org.springframework.boot.SpringApplication: 858 - Không chạy ứng dụng java.lang.NoClassDefFoundError: org / springframework / boot / bind / RelaxedDataBinder tại org.springframework.boot.autoconfigure.EnableAutoConfector.EnableAutoConfector. getExcludeAutoConfigurationsProperty (EnableAutoConfigurationImportSelector.java:179) tại org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.getExclusions (EnableAutoConfigurationImportSelector.java:172) tại org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector.selectImports (EnableAutoConfigurationImportSelector.java:87) tại org.springframework .context.annotation.ConfigurationClassParser$DefaultDeferredImportSelectorGroup.process(ConfigurationClassParser.java:892) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports (ConfigurationClassParser.java:878) tại org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:804) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process (ConfigurationClassParser.java:774) tại org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:185) at org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:185) at.org .springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry (ConfigurationClassPostProcessor.java:232) tại org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors (PostProcessorRegistrationDelegate.java:275) tại org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors (PostProcessorRegistrationDelegate .java: 95) tại org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:705) tại org.springframework.context.support.AbstractApplicationContext.refresh (Abstrac tApplicationContext.java:531) tại org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:142) tại org.springframework.boot.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:142) tại org.springframework.boot.SpringApplication.refresh (SpringAppframejwork.org .boot.SpringApplication.refreshContext (SpringApplication.java:397) tại org.springframework.boot.SpringApplication.run (SpringApplication.java:316) tại org.springframework.boot.SpringApplication.run (SpringApplication.java:1260) tại org. springframework.boot.SpringApplication.run (SpringApplication.java:1248) tại gr.publicsoft.springbootcrud.Application.main (Application.java:12) tại java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) tại java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) tại java.base / jdk.internal.reflect.DelectingMethodAccessorImpl.invoke (DelegateMethodAccessor .43) tại java.ava phản ánh.Method.invoke (Method.java:566) tại hoặc g.springframework.boot.devtools.restart.RestartLauncher.run (RestartLauncher.java:49) Gây ra bởi: java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder tại java.base / jdk.interiltin.loader. .loadClass (BuiltinClassLoader.java:581) tại java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader.loadClass (ClassLoaders.java:178) tại java.base / java.lang.ClassLoader.loadClass (ClassLoader.java:522 ) ... 26 khung thông thường bị bỏ qua

**Pom.xml(general in project)**
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven- 
 4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>gr.publicsoft.springbootcrud</groupId>
<artifactId>spring-boot-crud</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>

<properties>
    <java.version>1.8</java.version>
</properties>

<modules>
    <module>springbootcrud-domain</module>
    <module>springbootcrud-service</module>
    <module>springbootcrud-webapp</module>
</modules>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

</project>

**Pom.xml(inside app folder)**
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven- 
4.0.0.xsd">
<parent>
    <artifactId>spring-boot-crud</artifactId>
    <groupId>gr.publicsoft.springbootcrud</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>springbootcrud-webapp</artifactId>



<properties>
    <java.version>1.8</java.version>
    <finalName>${project.artifactId}-${project.version}</finalName> </properties> <profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> </profiles> <dependencies> <dependency> <groupId>gr.publicsoft.springbootcrud</groupId> <artifactId>springbootcrud-service</artifactId> <version>${project.parent.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
    </dependency>
    <dependency>
        <groupId>eu.bitwalker</groupId>
        <artifactId>UserAgentUtils</artifactId>
        <version>1.21</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>1.4.1.RELEASE</version>
    </dependency>
</dependencies>

<build>
    <finalName>${finalName}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

</project>

Trả lời

1 shengyan Aug 30 2020 at 05:14

Trên thực tế, spring-boot-starter-parentchứa spring-boot-autoconfigure, xemhttps://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/2.3.3.RELEASEdành cho Phụ thuộc được quản lý .

Nếu bạn chỉ định cụ thể phiên bản này (nghĩa là có hai phiên bản khác nhau), lỗi có thể xảy ra.