1

私のRESTEasyサービスには、Cookieパラメータを使用するメソッドがあります。

public interface SimpleService
{
  public String test(@CookieParam("param") String param);
}

現在、RESTEasyクライアントフレームワークでSimpleServiceを使用しようとしていますが、これはサーブレット内からのプロキシファクトリです。ただし、Cookieパラメータを正しく「転送」するにはどうすればよいですか?今のところ、リクエストのCookie配列を手動でループし、Cookieの値をtest(..)関数呼び出しに手動で提供する必要があります。http://docs.jboss.org/resteasy/docs/2.3.0.GA/userguide/html/RESTEasy_Client_Framework.htmlでRESTEasyクライアントフレームワークのドキュメントを読むと、次のようになります。

@CookieParamは、サーバー側の対応するミラーの反対側で動作し、サーバーに送信するCookieヘッダーを作成します。独自のjavax.ws.rs.core.Cookieオブジェクトを割り当て、それをパラメーターとしてクライアントプロキシメソッドに渡す場合は、@CookieParamを使用する必要はありません。クライアントフレームワークは、Cookieをサーバーに渡していることを認識しているため、追加のメタデータは必要ありません。

だから私はこれが私の場合に何を意味するのか興味がありますか?サーブレットでRESTEasyクライアントフレームワークとCookieパラメータを適切に使用するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

あなたが尋ねてからしばらく経ちました、そしてあなたはおそらく今までに問題を解決しました、しかしここに将来の参考のために何かがあります:

クライアントフレームワークを使用してサーバーから送信されたCookieにアクセスしようとしている場合は、ヘッダーのトラバースでスタックしていると思います(ClientResponse今日のように?)。

@CookieParamただし、現在のインターフェイスを使用してクライアントを作成し、どのように機能するかを理解したい場合は、次のようになります。

SimpleService service = ProxyFactory.create(SimpleService.class, "the://url:to/your/service");
service.test("this text becomes a cookie called 'param' in the request");

そのCookieは、サーバー側の実装への文字列入力パラメーターとして使用できます。

@Get
@Path("/test")
public String test(@CookieParam("param") cookie) {
    log(cookie); // would print: this text becomes a cookie called 'param' in the request
    return "seems legit";
}

これがあなた、将来の読者、またはその両方に役立つことを願っています!

于 2012-12-03T17:28:36.780 に答える