2010-04-12 53 views
7

我试图做一个非常简单的网络服务,执行以下操作:如何MTOM工作+示例代码

  1. 客户端点击web服务请求的文件。
  2. Web服务的服务类查询散列表,其中包含关键字(搜索查询)和值作为文件的base64编码值(比如pdf)
  3. 现在,我需要使用MTOM返回存储的base64编码值在散列表中给客户端。

这是由客户端解码并将其转换为pdf。

所以,这里是我的问题:

  1. 我明白,我们的文件编码为Base64为通过网络传输业务,但如果和如何MTOM来到这个画面呢?

  2. 有人可以给我一个简单的方法,它使用MTOM并发回数据。我们是否需要在WSDL中指定某些内容?或者一个简单的String返回类型就足够了?为什么/为什么不?

感谢

我已经看到了这code。它使用了很多注释,我只需要使用MTOM的简单Java代码。新到J2EE在这里:)

更新1

足够体面的解释here,现在我需要从执行层面上理解它。 良好的信息here,但对于.NET

更新2

应该用什么方法 “createMTOM(INT ID)” 的返回类型?

回答

7

你似乎在混合实现和协议。

MTOM的规格是hereThis页面有示例消息。

如果您使用的是JAX-WS环境,那么最确定的是使用Annotations来打开它。如果您手动滚动soap消息,则可以编写任何需要编写的Java代码来生成它。本质上,MTOM意味着数据的内容移动到一个附件中,该附件是消息的一个单独的MIME部分,并且通过xop引用:包含具有href的MIME部分的元素。

模式必须将base64Binary声明为元素类型,但其他属性提供了有关字节解释的提示:xmime:contentType和xmime:expectedContentType。根据我的经验,JAX-B参考实现对这些使用有一些限制。例如,你不能自动将文本来回地转换为字节。在CXF或Glassfish等典型工具包中,您将数据放入DataHandler中,工具包将其转换为附件。

0

有描述MTOM以及如何使这是一种有益的文章here CXF。该文章还包括一个工作示例的源代码。

相关问题