В настоящее время я использую UriInfo, внедренный средой jax-rs (в настоящее время RestEasy), для создания URI, который я использую в заголовке Location. URL, созданный из UriInfo, также используется в ответе xml / json.
Короче, это выглядит примерно так:
<code>
public class ResourceBean {
@Context
private UriInfo uriInfo
public Response mappedMethod(){
...
UriBuilder builder = uriInfo.getBaseUriBuilder().path(...);
...
}
}
Проблема в том, что мы используем балансировщики нагрузки перед серверами приложений, и если пользователь / система должен следовать по одной из ссылок, которые ему необходимо пройти через балансировщики нагрузки, а не напрямую к этой машине. uriInfo.getBaseUriBuilder()
возвращает базовый URL-адрес текущего компьютера, а не балансировщиков нагрузки.
Я понимаю, что некоторые балансировщики нагрузки могут выполнять переписывание URL для достижения этой цели, но я, к сожалению, не имею никакого контроля или доступа к нашим балансировщикам нагрузки и не знаю, поддерживают ли они это, или возможно ли это даже в тело ответа html.
Существует ли центральная точка, в которой UriInfo можно манипулировать или конструировать, чтобы он содержал базовый URI балансировщика нагрузки?