我是Springboot的新手,想运行一个示例项目。
在Intellij中执行时出现以下错误: java.lang.NoClassDefFoundError:org / springframework / web / util / UriTemplateHandler
POM为: https://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0 org.springframework.boot 弹簧启动启动器父母 2.2.2。发布 com.example 演示 0.0.1-快照 演示 Spring Boot的演示项目
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
控制器代码为:
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
public class HelloController {
@Controller
@RequestMapping(value = "/test")
public class TestController {
@RequestMapping (value="map")
public String getMeSomething()
{
return "Got this from Srini!";
}
}
}
DemoApplication是:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
有想法吗?
答案 0 :(得分:1)
删除 spring-web 的版本 依赖性
每个版本的Spring Boot提供了精选的依赖项列表 它支持。实际上,您不需要提供版本 对于您的构建配置中的任何依赖项,例如Spring Boot为您管理。当您升级Spring Boot本身时,这些 依赖性也以一致的方式升级。
答案 1 :(得分:0)
我相信您的spring依赖版本中不存在UriTemplateHandler类
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
根据https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriTemplateHandler.html,自4.2版本开始存在。也许将versión升级到4.2可以解决您的问题? (在下载了c的依赖项之后)。