2012-04-09 112 views
1

我的RESTEasy服務確實有使用cookie的參數的方法:的JBoss的RESTEasy客戶端和Servlet

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

現在我想用我用的RESTEasy客戶端框架SimpleService,它是從我的Servlet中的代理工廠。但是,如何正確「轉發」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傳遞給服務器,因此不需要額外的元數據。

所以我很好奇這對我的情況意味着什麼?如何在我的servlet中正確使用RESTEasy客戶端框架& cookie參數?

謝謝!

回答

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"; 
} 

希望這有助於你,未來的讀者或兩者!