私は現在、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(...);
...
}
}
問題は、アプリケーションサーバーの前でロードバランサーを使用していることです。ユーザー/システムがリンクの1つをたどる場合は、このマシンに直接ではなく、ロードバランサーを経由する必要があります。uriInfo.getBaseUriBuilder()
ロードバランサーではなく、現在のマシンのベースURLを返します。
一部のロードバランサーがこれを実現するためにURLの書き換えを実行できることは理解していますが、残念ながら、ロードバランサーを制御したりアクセスしたりすることができず、ロードバランサーがサポートしているかどうか、または本体で可能かどうかもわかりません。 html応答。
ロードバランサーのベースURIを含むようにUriInfoを操作または構築できる中心点はありますか?