В настоящее время я самостоятельно изучаю новый язык: Java с Spring.
Мне удалось создать родительский элемент и зависимости для проекта в pom.xml
<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>
<groupId>tech.benjaminpradon</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>benjaminpradon</name>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Version -->
<properties>
<java.version>1.8</java.version>
</properties>
</project>
Я также создал программу запуска приложения Spring:
package springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LearningJava {
public static void main(String[] args) {
SpringApplication.run(LearningJava.class, args);
}
}
Однако когда я пытаюсь запустить его, я получаю сообщение об ошибке:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at springboot.LearningJava.main(LearningJava.java:10)
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.ListableBeanFactory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 13 more
Я думал, что мне нужно создать ResourcesController (RestController). Итак, я создал один:
package springboot.hello;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String Hi() {
return "Hi";
}
}
Но это ничего не меняет.
Поскольку я новичок, мне очень нужна помощь. Спасибо.
Похоже, вам не хватает зависимостей. Можете ли вы попробовать с другой версией зависимости или попробовать stackoverflow.com/a/47977396/4100453. Добавьте информацию о сборке в файл pom
Спасибо за ответ. Я только что попытался добавить сборку в файл pom, но все еще не работает. <build> <plugins> <plugin> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-maven-plugin </artifactId> </plugin> </plugins> </build>
Какие зависимости я мог упустить? @AlexanderFalk
@mallikarjun Спасибо - удалил папку .m2 и обновил проект. Это работает! Ваше здоровье
Я заметил эту проблему при обновлении своего проекта до spring-boot-2. Maven не может загрузить зависимости или загруженные зависимости повреждены. Поэтому я удалил старые весенние версии из .m2 и построил проект, который загружал последние jar-файлы. Проблема в том, что несколько проектов, зависимости которых отличаются от версии, я не могу их получить. Поэтому я настроил отдельный путь maven для проектов spring-boot2 в моей локальной папке.




Как упомянул @mallikarjun, я должен
delete .m2 folder and re-run again or updated dependencies again
Зачем? Это ответ.
Ох, прости. На странице просмотра вы можете увидеть только один ответ. Для меня это прозвучало как ответ на ответ.
Попробуйте удалить папку .m2 и снова запустить или снова обновить зависимости.