Hyperlink jax rs链接生成器正在忽略基本uri,是否要创建绝对链接
我正在尝试向我的jax rs响应头添加链接:Hyperlink jax rs链接生成器正在忽略基本uri,是否要创建绝对链接,hyperlink,jax-rs,hateoas,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()
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一起工作(它应该工作,不是吗)?这对我来说很有用:
UriBuilder uriBuilder = uriInfo.getAbsolutePathBuilder();
UriBuilder clone = uriBuilder.clone();
clone.path("xxx");
Link link = Link.fromUriBuilder(clone).rel("self").type("GET").build();
克隆因为我重复使用构建器我目前正在研究同样的事情,查看链接的源代码(在我的例子中由Resteasy提供),我发现baseUri除了buildRelativeized()方法外,其他地方都没有使用,它只使用它来剥离它并返回一个相对uri。虽然您使用UriBuilder的第二个代码片段并不那么难看,但我们在这里似乎运气不佳。