在 Spring 引导应用程序中实施 HATEOAS 时出错:java.lang.IllegalArgumentException

Error while implementing HATEOAS in Spring Boot Application : java.lang.IllegalArgumentException

我正在开发 spring-boot 应用程序,我创建了一个用于用户管理的小应用程序,并具有 get-user、create-user 等操作。在我使用 HATEOAS 之前,这些操作工作正常。现在,当我从 POSTMAN 访问我的 Web 服务时,出现以下错误。

POSTMAN 中的错误:

{
"timestamp": "2021-05-17T16:01:22.049+00:00",
"message": **"Object of class [java.util.ArrayList] must be an instance of interface org.springframework.hateoas.server.core.LastInvocationAware"**,
"details": "uri=/user/get-user/100",
"className": "java.lang.IllegalArgumentException"

}

我用来访问网络服务的路径:http://localhost:8080/user/get-user/100

我的静态列表中确实有一个 ID 为 100 的用户,并且在编译中没有错误。

这是我的 @RestController 注释 class :

all required imports here >

@RestController
 public class UserResource {

@Autowired
private UserDaoService service;

@GetMapping(path = "/user/get-users")
public List<User> getAllUsers() {
    return service.getUserList();
    
}

@RequestMapping(method = RequestMethod.GET, path = "/user/get-user/{id}")
public EntityModel<User> getUserByIDWithURL(@PathVariable int id) {

    System.out.println("Request for ID: " + id);
    User user = service.findUser(id);

    if (user == null) {
        throw new UserNotFoundException("User not found with ID " + id);
    }

    EntityModel<User> resource = EntityModel.of(user);
    WebMvcLinkBuilder link = linkTo(this.getAllUsers());
    resource.add(link.withRel("all-users"));

    return resource;
}


}

注意:UserDaoService 有静态的用户列表,class 提供各种操作,如获取所有用户,从列表中删除用户等

期待尽快得到解决方案,以便我可以继续我的应用程序。提前致谢。

你能发下 UserDaoService 的代码吗?我记得我有同样的问题,然后就解决了。也请查看下面的行,这看起来很可疑。

WebMvcLinkBuilder link = linkTo(this.getAllUsers());