概述:
我将使用以下命令将基于Spring-Hateoas-Doc的新链接添加到 JSON 响应:
linkTo(methodOn(ProductRepository.class).findOne(10L)).withRel("product");
问题:
但是我得到了以下异常:
java.lang.IllegalArgumentException: 'uriTemplate' must not be null
因此,如果有人能建议我一个真正的解决方案,我将不胜感激。
概述:
我将使用以下命令将基于Spring-Hateoas-Doc的新链接添加到 JSON 响应:
linkTo(methodOn(ProductRepository.class).findOne(10L)).withRel("product");
问题:
但是我得到了以下异常:
java.lang.IllegalArgumentException: 'uriTemplate' must not be null
因此,如果有人能建议我一个真正的解决方案,我将不胜感激。
我发现了这个问题。因为我的处理器类不是休息控制器,所以已经提出了这个问题。为了解决这个问题,我使用了 entityLinks,如下所示:
@Controller
public class StockMovementsProcessor implements ResourceProcessor<Resource<StockMovementsProjection>> {
@Autowired
private EntityLinks entityLinks;
@Override
public Resource<StockMovementsProjection> process(Resource<StockMovementsProjection> stockMovementsProjectionResource) {
StockMovementsProjection stockMovementsProjection = stockMovementsProjectionResource.getContent();
stockMovementsProjectionResource.add(entityLinks.linkFor(Product.class).slash(10L).withRel("product"));
return stockMovementsProjectionResource;
}
}
它为我创建了以下链接:
http://localhost/products/10
如果您使用的是 hatos 0.20.0 版本,请尝试使用以下 maven 依赖项将其升级到 23
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
<version>0.23.0.RELEASE</version>
</dependency>