【问题标题】:Restlet client returns nullRestlet 客户端返回 null
【发布时间】:2016-01-12 06:57:50
【问题描述】:

我有一个 jax-rs 注释接口

public interface Store {

    @Path("/apipath")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Token login(@BeanParam Header header, 
        @FormParam(value = "type") String type);        

}

Token 是一个带有 jaxb 注释的类。

我想将此接口用作客户端代理。

Store s = new ClientResource(url).wrap(Store.class);
Token t = s.login(...);

返回的令牌始终为空。不抛出异常。如果我使用相同的接口但作为 jax-rs 实现我选择 cxf 或 resteasy 该方法返回具有正确数据的非空对象。

我正在使用 org.restlet.ext.jaxrs 2.3.3、org.restlet.ext.jackson 2.3.3、org.restlet.ext.jaxb 2.3.1

【问题讨论】:

  • 你好。可以在您的问题中添加Token 的内容吗?所以我可以尝试重现你的问题。谢谢!
  • @thierrytemplier 这似乎是restlet 中的一个错误。我改变了我的代码。 JaxRsClientResource resource = new JaxRsClientResource(context, new Reference(apiUrl)); store = resource.wrap(Store.class); 现在它返回 409 - 在标头类中有一个用 @headerparams 注释的字段,它没有在请求中发送。
  • 409错误有点奇怪。我不认为这是 Restlet 抛出的东西。你把它扔到哪里了吗?关于标题类,我不确定你的意思。通过标题类,您想到org.restlet.data.header 一个吗?你最后一句话是什么意思?是否可以更新您的问题以向我们提供有关您尝试的更多详细信息?谢谢!

标签: java jax-rs restlet


【解决方案1】:

ClientResource 类及其wrap 方法仅支持本机Restlet 注释(如@Get@Post、...)。 JaxRsClientResource 做了类似的事情,但在 JAX-RS 的上下文中。

希望对你有帮助 蒂埃里

【讨论】:

    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多