UriBuilderクラスのメソッドを使用する場合の注意事項を次に示します。
なお,説明中の「UriBuilderオブジェクトのURI」とは,それぞれのメソッドを呼び出すときに,それまでのほかのメソッドの呼び出しですでにUriBuilderオブジェクトに構築されているURIのことを指します。
- UriBuilderクラスのメソッドを使用する場合は,JAX-RS APIのドキュメントやRFC 2396,2732を参照の上,各メソッドの引数に使用できる文字および形式を使用してください。引数の文字や形式が不正な場合,そのメソッドを呼び出したり,build(Object... values)メソッドを呼び出したりしたときに例外がスローされることがあります。なお,次のメソッドでは,不正な文字は自動的にパーセントエンコードされます(すでにパーセントエンコードされている場合はそれ以上パーセントエンコードされません)。
- fragment(java.lang.String fragment)
- host(String host)
- path(String path)
- queryParam(java.lang.String name, java.lang.Object... values)
- replacePath(String path)
- replaceQuery(java.lang.String query)
- replaceQueryParam(java.lang.String name, java.lang.Object... values)
- segment(String... segments)
- userInfo(String ui)
- 不透明なURIはサポートされません。階層的なURIに対してだけ使用してください。
- テンプレートパラメタの使用はサポートされません。メソッドの引数にテンプレートパラメタが含まれる場合,動作は保証されません。
- build(Object... values)メソッドには引数を指定しないでください。引数が指定されて呼び出された場合,動作は保証されません。
- クエリパラメタの順序は保持されません。
- port(int port)メソッドを使用する場合,65535を超える数値を指定しても,例外にはなりません。-1より小さい数値を指定すると,IllegalArgumentExceptionがスローされます。
- replaceQuery(String query)メソッドを使用する場合,UriBuilderオブジェクトのURIに置き換える対象が存在しないときの動作は保証されません。
- replaceQueryParam(String name, Object... values)メソッドの引数に,UriBuilderオブジェクトのURIに存在しないクエリパラメタを指定した場合,指定されたパラメタがURIに追加されます。
- replaceQueryParam(String name, Object... values)メソッドのvalues引数にnullを指定した場合,JAX-RS 1.1標準仕様のAPIドキュメントの記載と異なり,既存のクエリパラメタは取り除かれず,IllegalArgumentExceptionがスローされます。
- replacePath(String path)メソッドの引数にnullを指定した場合,JAX-RS 1.1標準仕様のAPIドキュメントの記載と異なり,既存のパスは取り除かれず,IllegalArgumentExceptionがスローされます。