我的RESTEasy服务确实有一个使用cookie参数的方法:
public interface SimpleService
{
public String test(@CookieParam("param") String param);
}
现在我正在尝试将我的SimpleService与RESTEasy客户端框架一起使用,它是我的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传递给服务器,因此不需要额外的元数据。
所以我很好奇这对我的情况意味着什么?如何正确使用RESTEasy客户端框架&我的servlet中的cookie参数?
谢谢!
答案 0 :(得分: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将作为服务器端实现的String输入参数提供。
@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";
}
希望这对您,未来的读者或两者都有帮助!