jax-rs链接构建器忽略基础uri,想要创建绝对链接

时间:2015-06-19 08:40:51

标签: hyperlink jax-rs hateoas

我正在尝试添加指向我的jax-rs响应标头的链接:

Link.fromMethod(UserResource.class, "delete")
        .baseUri(getUriInfo().getBaseUri()).rel("delete").build(id);

虽然我在每个调试器和日志中看到getUriInfo().getBaseUri()返回正确的uri,但结果链接仅为/1(对于id = 1)。

使用UriBuilder它正在运行!

URI build = getUriInfo().getBaseUriBuilder().path(UserResource.class, "delete").build(id);
Link.fromUri(build).rel("delete").build();

getUriInfo只返回注入了@Context的基类的uriInfo。

那么如何让它与Link一起工作(它应该有效,不应该吗?)

1 个答案:

答案 0 :(得分:2)

这对我有用:

UriBuilder uriBuilder = uriInfo.getAbsolutePathBuilder();
UriBuilder clone = uriBuilder.clone();
clone.path("xxx");
Link link = Link.fromUriBuilder(clone).rel("self").type("GET").build();

克隆,因为我使用了构建器