ClassNotFoundException:org.springframework.hateoas.Resource,即使我添加了依赖项

时间:2019-05-07 05:00:43

标签: spring spring-boot

我的pom.xml中包含以下内容

1

但是我仍然收到以下消息

<dependency>
    <groupId>org.springframework.hateoas</groupId>
    <artifactId>spring-hateoas</artifactId>
</dependency>

我尝试删除Caused by: java.lang.NoClassDefFoundError: org/springframework/hateoas/Resource at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_191] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_191] at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_191] at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:668) ~[spring-core-5.1.5.RELEASE.jar:5.1.5.RELEASE] ... 21 common frames omitted Caused by: java.lang.ClassNotFoundException: org.springframework.hateoas.Resource at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_191] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_191] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_191] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_191] ... 25 common frames omitted 文件夹的内容并再次下载所有依赖项。我尝试强制更新maven项目,但是当我启动Spring Boot项目时仍然收到消息。任何人都知道即使添加了依赖关系我也为什么要得到这个?

4 个答案:

答案 0 :(得分:0)

对于Spring Boot,请使用spring-boot-starter-hateoas依赖项

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-hateoas</artifactId>
  <version>2.1.4.RELEASE</version>
</dependency>

答案 1 :(得分:0)

在pom.xml中添加以下依赖项

       <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-hateoas</artifactId>
        <version>2.2.6.RELEASE</version>
       </dependency>

在控制器中编写以下方法:-

@GetMapping("/student/{id}")
public EntityModel<Student> getstudent(@PathVariable int id) {
    Student student = studentRepo.findById(id).orElse(new Student());
    EntityModel<Student> resource=new EntityModel<Student>(student);
    Link link=WebMvcLinkBuilder.linkTo(this.getClass()).
              slash(studentRepo.findAll()).withSelfRel();
    resource.add(link.withRel("all-students"));
    return resource;
}

答案 2 :(得分:0)

如果您明确添加了hateoas,请尝试重新启动容器,这对我有用。

答案 3 :(得分:-1)

类的ResourceSupport / Resource / Resources / PagedResources组从未真正被恰当地命名过。毕竟,这些类型实际上并不表示资源,而是表示模型,可以通过超媒体信息和提供的内容加以丰富。这是新名称映射到旧名称的方式:

ResourceSupport现在是RepresentationModel

资源现在是EntityModel

资源现在为CollectionModel

PagedResources现在是PagedModel