2.12[設定など]コンテキストパスは「/」で動作させています。【概要】JAX-RSリソースのURIを取得する際にUriBuilder#fromMethodを使うとパスを意識しすぎてなくて良いと教えていただきました。使っているうちにメソッドを組み合わせないと上手くいかないケースが出てきたので、ちょっとまとめてみました。便利メソッドが別にあって、そんなことしなくても・・・と言うのはあるかもしれません。【サンプルで使うリソースクラス】サンプルで使用するリソースクラスは下記のようになります。}}今回は@Pathのところだけしか使わないので、中身は適当です。【fromResource/fromMethod】fromResourceメソッドはクラスから、fromMethodはメソッドからパスの情報を取得します。"sample1").build());UriBuilder#buildはUriBuilderからjava.net.URIクラスのオブジェクトを生成します。[結果]/root/sample-resource/sample-1それぞれクラス/メソッドで指定した@Pathの値が出力されます。【メソッドのフルパスを取得】SampleResource#samplePathParamのパスは「/root/sample-resource/sample-1」になるので、メソッドを1回呼び出しただけでは取得できません。一度パスを文字列にして、再度UriBuilderを構築します。System.out.println(builder.build());UriBuilder#toTemplateでそれぞれの文字列が帰ってきます。UriBuilder#fromUriにつなげた文字列を渡すとUriBuilderのオブジェクトが作成されます。[結果]UriBuilder#toTemplate【パスパラメータ】@PathParamを使ってパスからパラメータを取得するような形式だった場合はどうするかというのもメソッドとして提供されています。append);先ほどと同じようにSampleResource#samplePathParamに対してUriBuilderを構築します。System.out.println(pathChanged.build());やり方は二通りあります。UriBuilder#buildにパラメータを渡すパターンです。記述はシンプルですが、順番に依存するのがデメリットだと思います。UriBuilder#resolveTemplateで値を設定するパターンです。記述量は増えて面倒ですが、順番に対しては依存していません。名前には依存してしまいますが。[結果]/root/sample-resource/pathParam/8009/ajp/hoge/root/sample-resource/pathParam/8009/ajp/hoge【まとめ】UriBuilder、便利。月別アーカイブはてなブログをはじめよう!gloryofさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。