java.lang.NoClassDefFoundError:org / springframework / web / util / UriTemplateHandler

时间:2019-12-26 00:41:37

标签: java spring spring-boot maven

我是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);
    }
}

有想法吗?

2 个答案:

答案 0 :(得分:1)

删除 spring-web 版本 依赖性

  

每个版本的Spring Boot提供了精选的依赖项列表   它支持。实际上,您不需要提供版本   对于您的构建配置中的任何依赖项,例如Spring   Boot为您管理。当您升级Spring Boot本身时,这些   依赖性也以一致的方式升级。

See more

答案 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的依赖项之后)。