1

私はジャージークライアントを使用しています。

Client client = Client.create();
client.addFilter(new Myfilter());
// do some other things

および Myfilter クラス

public class Myfilter extends ClientFilter {

    public ClientResponse handle(ClientRequest cr) {
         System.out.println("called");
         ClientResponse resp = getNext().handle(cr);
         return resp;
    }
}

Myfilter のハンドル メソッドを呼び出すことができません。誰でもこれで私を助けることができますか?

4

2 に答える 2

2

この記事では、ジャージクライアント用のフィルターを追加する方法について説明します。

それが役に立てば幸い

PS:web.xmlに追加するのを忘れた場合

<init-param>
  <param-name>your.package.ClientFilter</param-name >
</init-param>

@Override
    public ClientResponse handle(ClientRequest request) throws ClientHandlerException {
        request.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, "application/json");
        return getNext().handle(request);
    }
于 2013-01-17T11:18:03.233 に答える
2

コンソールに「呼び出された」と出力される簡単な例 (jersey-client バージョン 1.x を使用) を次に示します。

import com.sun.jersey.api.client.*;
import com.sun.jersey.api.client.filter.ClientFilter;

public class JerseyClientFilterExample {
    public static void main(String[] args) {
        Client client = Client.create();
        client.addFilter(new MyClientFilter());
        client.resource("http://google.com").get(ClientResponse.class);
    }
}

class MyClientFilter extends ClientFilter {
    @Override
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException {
        System.out.println("called");
        return getNext().handle(cr);
    }
}
于 2013-08-06T06:53:19.603 に答える