java rest client:jax-rs&自动类型映射

时间:2011-08-08 17:55:36

标签: java rest

以下是我要做的事情:

创建一个界面(作为例子):

@Path( "/" )
public interface Bubbles {

   @Get
   @Path( "blowBubble" )
   @Produces( "text/plain" )
   Bubble blowBubble();
}

所述接口应该部署为一个宁静的Web服务。我此时并不特别关心服务器端,我主要关心的是客户端。

我正在寻找的是一个我可以的图书馆:

1)实现界面,界面不知道完整的URL(知道服务器和端口显然是必要的(毕竟它在界面中)

2)通过电线自动将'Bubble'映射到json。不添加JAXB,没有建筑类型转换器等自动

我的问题是我用过的2个库做了1个或另一个,但不是两个:(

Restlet库执行2而不是1,CXF执行1但不执行2.

是否有任何图书馆同时执行这两项工作?

我已经为两者提交了错误,并且CXF开发人员似乎坚持认为2不应该是一个功能 - 我不明白为什么。

提前致谢。

编辑#1:

为了澄清我的意图,我想使用REST作为SOA java的支持传输机制。这种运输应该是IMO透明的;如果您有一个带注释的服务接口,那么客户端和服务器就不需要了解彼此的任何信息。他们应该按合同运作。此外,此API应该是非侵入性的;示例:我发现使用JAXB注释业务对象\实体是侵入性的(如果我无法修改源,该怎么办?)。

3 个答案:

答案 0 :(得分:0)

我认为我能为您提供的最佳答案是选择最好,最活跃的堆栈并添加您的更改,以便为自己提供所需的支持。我不相信有一个主要的球员满足你的需求。

答案 1 :(得分:-1)

只有在您使用自己的注释时,Restlet才能实现接口(请参阅ClientResource #create)。我制作了自己的代码来处理jax-rs注释...

关于第二点,我不知道CXF。我们使用Restlet和Jackson实现了jax-rs commons接口(JacksonJsonProvider):MessageBodyWriter,MessageBodyReader。也许,您可以将此课程注册到CXF。这可能有用,因为杰克逊可以在没有注释的情况下工作。

答案 2 :(得分:-1)

实际上,当您使用JAX-RS时,CXF会同时使用

注释您的方法
@Produces("application/json")

你将获得json输出开箱即用