我目前正在使用由 jax-rs 框架(当前为 RestEasy)注入的 UriInfo 来构建我在 Location 标头中使用的 URI。从 UriInfo 创建的 url 也用于响应 xml/json。
所以简而言之,它看起来像:
public class ResourceBean {
@Context
private UriInfo uriInfo
public Response mappedMethod(){
...
UriBuilder builder = uriInfo.getBaseUriBuilder().path(...);
...
}
}
问题是我们在应用程序服务器前面使用负载平衡器,如果用户/系统要遵循其中一个链接,它需要通过负载平衡器而不是直接连接到这台机器。uriInfo.getBaseUriBuilder()
返回当前机器的基本 URL,而不是负载均衡器的基本 URL。
我知道一些负载均衡器可以进行 url 重写来实现这一点,但不幸的是,我对我们的负载均衡器没有任何控制或访问权限,也不知道他们是否支持它,或者它是否可能在html响应。
是否存在可以操作或构造 UriInfo 以包含负载均衡器的基本 URI 的中心点?