【问题标题】:JBoss RESTEasy Client and ServletJBoss RESTEasy 客户端和 Servlet
【发布时间】:2012-04-09 06:02:38
【问题描述】:

我的 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 传递给服务器,因此不需要额外的元数据。

所以我很好奇这对我的案子意味着什么?如何在我的 servlet 中正确使用 RESTEasy 客户端框架和 cookie 参数?

谢谢!

【问题讨论】:

    标签: rest resteasy


    【解决方案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";
    }
    

    希望这对您、未来的读者或两者都有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多