2011-12-14 6 views
2

http://jersey.java.net/nonav/documentation/latest/client-api.html#d4e704でマニュアルを読むと、ClientFilterが追加された順に処理されると思います。しかし、私はその逆を見ている。Jersey ClientFilter注文

ClientFilter filter1 = new ClientFilter() { 
    @Override 
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { 
     System.out.println("Modify Request 1"); 
     ClientResponse response = getNext().handle(cr); 
     System.out.println("Modify Response 1"); 
     return response; 
    } 
}; 
ClientFilter filter2 = new ClientFilter() { 
    @Override 
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { 
     System.out.println("Modify Request 2"); 
     ClientResponse response = getNext().handle(cr); 
     System.out.println("Modify Response 2"); 
     return response; 
    } 
}; 
Client c = Client.create(); 
c.addFilter(filter1); 
c.addFilter(filter2); 

ClientFilter filter3 = new ClientFilter() { 
    @Override 
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { 
     System.out.println("Modify Request 3"); 
     ClientResponse response = getNext().handle(cr); 
     System.out.println("Modify Response 3"); 
     return response; 
    } 
}; 
WebResource r = c.resource("http://www.stackoverflow.com"); 
r.addFilter(filter3); 

System.out.println(r.get(ClientResponse.class).getStatus()); 

私は、リクエスト1 2 3を変更するを参照してくださいレスポンス3 2 1を変更し、私は代わりにリクエスト3 2 1を変更するを参照してくださいすることが期待される:ここで私はドキュメントに示されているものに似た、でテストしていたコードです応答を修正する1 2 3.

私はドキュメントを後方に解釈していますか?

答えて

0

あなたはバグを発見しました。私はまだ正確にどこに決定していませんが、後方実装のために実装を変更したくない(ほとんどの場合)ため、ユーザーガイドを更新して、クライアントフィルタの実際の動作を反映させるだけです(参照用のユーザーガイドへのリンク - http://jersey.java.net/nonav/documentation/latest/client-api.html#d4e704)。

Jersey Issue Trackerに新しい問題を提出できますか? http://java.net/jira/browse/JERSEY/

ありがとうございます!

+0

作成http://java.net/jira/browse/JERSEY-907 –

+0

ありがとう、私はそれについて何ができるかを見ていきます。 –