私はサーバーとクライアントにRESTeasyを使用しました。クライアントの共有サーバーとのサービス・インターフェース:このサービスのRESTeasyクライアントでパスパラメータを設定する方法
public interface Service {
@Path("/start")
@GET
void start();
}
実装がパス/api
にバインドされているので、この方法のスタートは()の完全なパス/api/start
上でアクセス可能です。
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
Service service = ProxyFactory.create(Service.class, "http://server/api");
service.start();
しかし、私は、パスの大文字小文字を区別しませんがしたいので、私はそれで正規表現で偽のパスパラメータ:クライアント側でコード非常に簡単です
public interface Service {
@Path("/{start:[Ss]tart}")
@GET
void start();
}
今すぐクライアントProxyFactoryが値を知りません置換パスパラメーター{start}
の場合は置換を行わず、クライアントは例外You did not supply enough values to fill path parameters
で終了します。
しかし、私はメソッド引数としてパスパラメータを使用しようとすると、動作します。
public interface Service {
@Path("/{start:[Ss]tart}")
@GET
void start(@PathParam("start") String param);
}
RESTeasyクライアントで偽のパスパラメータの値を指定するにはどうすればよいですか?
ありがとうございました。
に興味を持って、今私は(正規表現での)サーバー用とクライアント用の2つの別々のインタフェースを使用する人のために(プレーン小文字でパス)。私はRESTeasyバグトラッカーの機能強化として報告します。https://issues.jboss.org/browse/RESTEASY-634 – mschayna
アップデート:私はJersey RESTサーバーに一年以上前に切り替えました。ジャージーは完全に別の方法でクライアントをサポートしているので、別の問題に直面する必要があります:) – mschayna