以下是我要做的事情:
创建一个界面(作为例子):
@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注释业务对象\实体是侵入性的(如果我无法修改源,该怎么办?)。
答案 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输出开箱即用