rest + xop /二进制数据嵌入在xml响应中

时间:2010-12-14 14:38:32

标签: java web-services rest jersey xop

我被赋予了将二进制数据(如图片,音乐,缩略图等)嵌入到xml元数据容器中的任务,以便通过REST接口发布整个包。目前我们在项目中使用Jersey和spring。 我真的不想回到soap / wsdl(这似乎是每个基于ws的问题的默认答案)或任何容器格式如zip只是为了通过网络获取数据所以我google了一段时间以获得更多适当的解决方案。

我发现建议使用XOP格式将内容嵌入到xml中,这是SOAP中使用的MTOM协议的一部分,但我没有看到通过REST直接提供XML + XOP响应的解决方案。

我的问题:有人能给我一个如何使用Jersey / spring实现XOP + REST的提示吗?我看到的帖子暗示有人在之前做过......

最好的问候,

2 个答案:

答案 0 :(得分:0)

为什么要将二进制数据嵌入到XML中?有很多方法可以将二进制资源与其相应的元数据相关联,而无需将其填充到单个表示中。

您正在击败REST HTTP的主要优势之一。根据需求处理多种不同媒体类型的能力是使用REST over HTTP的原因之一可能比SOAP更有效。

考虑检索包含二进制资源链接的元数据的XML表示,如Atom所做的那样。如果要首先检索二进制文件,请考虑链接标题以指向元数据。除了尝试将二进制数据填充到XML中之外,还有许多更好的方法。

答案 1 :(得分:0)

我不确定泽西岛,但CXF支持XOP。也许你可以从那里获取灵感?

http://cxf.apache.org/docs/jax-rs-multiparts.html#JAX-RSMultiparts-XOPsupport