我是Spring Boot的新手,并开始使用一些视频教程。我创建了一个Maven项目,添加了工件ID spring-boot-starter-parent
的父依赖项,添加了spring-boot-starter-web
和spring-boot-starter-test
的依赖项。这是Application.java
:
@RestController
@EnableAutoConfiguration
public class Application {
@RequestMapping("/")
public String home() {
return "Hello World";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
注意:
src/test/java
和src/test/resources
个包是空的。这是一个Maven项目,我正在使用STS,执行“Maven - > Update Project ...”并使用STS IDE多次清理/构建整个项目,我收到以下错误。此外,我试图在STS中创建一个新项目,但我仍然收到以下错误:
当我将其作为Spring Boot App
运行时,我收到此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/util/Assert
at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:263)
at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:247)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.boot.Application.main(Application.java:18)
Caused by: java.lang.ClassNotFoundException: org.springframework.util.Assert
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)
... 5 more
请帮我解决这个问题。
修改
这是我的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>com.deloitte.boot</groupId>
<artifactId>boot-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>boot-test</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
这是我的项目目录stricture:
答案 0 :(得分:2)
我已经解决了这个问题,首先我删除了文件夹.m2,然后将mvn clean install运行到目录spring boot项目中。仅此而已!
答案 1 :(得分:1)
在学习和制作项目时,最好遵循软件原则。尝试以一种始终实现关注分离的方式创建项目,这将使您的代码不仅易于理解,而且还可以进行调试和修复。
像这样更改您的应用程序类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
现在制作另一个包控制器并在其中创建用于测试的课程
@RestController
//You can add this if you want or remove this class level mapping
@RequestMapping("/testApp")
public class TestController {
@RequestMapping("/")
public String home() {
return "Hello World";
}
}
寻求进一步的帮助。请在STS中查看this (official spring.io tutorial) Spring Boot App的简单示例。 还有一个是very simple and straightforward来启动和运行Spring Boot App。
编辑:请在pom.xml中添加初学者测试。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.10.RELEASE</version>
<scope>test</scope>
</dependency>
答案 2 :(得分:0)
在我安装了STS之后,出现了同样的问题(在此之前,Eclipse中的一切都正常了)。 我删除了.m2文件夹中的springframework文件夹,然后在我的项目目录中运行“ mvn clean install”。之后,我的assertj-core-3.11.1.jar和mockito-core-2.23.0.jar(ZipFile无效的LOC标头(错误的签名))遇到了问题,因此我也将其删除并运行了“ mvn spring-boot :run“。
现在它可以工作了(但是我不能真正解释为什么)。
答案 3 :(得分:0)
IntelliJ和从Spring Initializer创建的全新项目也遇到了同样的问题。尝试手动编译时看到此消息:
[ERROR] error reading /Users/mike/.m2/repository/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.jar; zip file is empty
结果证明从Maven Central下载的文件已损坏:
ls -al /Users/mike/.m2/repository/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.jar
-rw-r--r-- 1 mike staff 0 Jan 16 20:55
/Users/mike/.m2/repository/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.jar
删除整个目录并重建,迫使其下载缺少的库的新副本:
./mvnw compile
Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.pom (3.6 kB at 7.6 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/spring-core/5.1.4.RELEASE/spring-core-5.1.4.RELEASE.jar (1.3 MB at 3.6 MB/s)