2013-01-17 183 views
1

我正在使用Jersey客戶端。擁有客戶端篩選器的Jersey客戶端

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的處理方法。有人能幫我解決嗎?

回答

1

這個Article解釋瞭如何爲球衣客戶端添加過濾器。

希望它可以幫助

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); 
    } 
+0

我不使用netbeans ... m使用eclipse或任何GUI工具來配置篩選器 –

+0

它不是關於IDE/GUI。這有助於瞭解方法 – TheWhiteRabbit

+0

我創建了過濾器,但你可以告訴如何調用句柄方法 –

1

下面是簡單的例子(使用球衣的客戶端版本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); 
    } 
}