Центральная точка для манипулирования UriInfo - PullRequest
1 голос
/ 10 марта 2011

В настоящее время я использую 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 балансировщика нагрузки?

1 Ответ

0 голосов
/ 11 марта 2011

Я нашел, где построен UriInfo.Информация собирается из HttpServletRequest.К сожалению, нет другого способа, кроме как изменить код RestEasy, чтобы манипулировать им.

Поэтому я собираюсь использовать фильтр сервлетов для манипулирования запросом до того, как он попадет в среду.

...