【问题标题】:How does MTOM work + sample codeMTOM 是如何工作的 + 示例代码
【发布时间】:2011-02-06 20:18:46
【问题描述】:

我正在尝试制作一个非常简单的网络服务,它执行以下操作:

  1. 客户端点击请求文件的 Web 服务。
  2. Web 服务的服务类查询具有键(搜索查询)和值作为文件(例如 pdf)的 base64 编码值的哈希表
  3. 现在,我需要使用 MTOM 将存储在哈希表中的 base64 编码值返回给客户端。

由客户端对其进行解码并将其转换为 pdf。

所以,这是我的问题:

  1. 我知道我们将文件编码为 base64 以通过 Web 服务传输,但是 MTOM 是在哪里以及如何出现的?

  2. 谁能给我提供一种使用 MTOM 并将数据发回的简单方法。我们是否也需要在 WSDL 中指定某些内容?还是一个简单的 String 返回类型就足够了?为什么/为什么不?

谢谢

我见过这个code。它使用了很多注释,我只需要一个使用 MTOM 的简单 java 代码。 J2EE 新手在这里 :)

更新 1

足够体面的解释here,现在我需要从实现层面来理解它。 很好的信息here,但适用于 .Net

更新 2

方法“createMTOM(int id)”的返回类型应该是什么??

【问题讨论】:

    标签: java web-services mtom


    【解决方案1】:

    您似乎混淆了实现和协议。

    MTOM 的规范是here。 This 页面有示例消息。

    如果您使用的是 JAX-WS 环境,您肯定会使用Annotations 来打开它。如果您要手动滚动肥皂消息,那么您可以编写任何需要编写的 Java 代码来生成它。本质上,MTOM 意味着数据的内容移动到附件,这是邮件的一个单独的 MIME 部分,并通过带有指向 MIME 部分的 href 的 xop:Include 元素进行引用。

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

    【讨论】:

      【解决方案2】:

      IBM 红皮书:开发 Web 服务应用程序中提供了一个很好的详细示例/讨论,请参阅第 64-74 页

      http://www.redbooks.ibm.com/redpapers/pdfs/redp4884.pdf

      【讨论】:

        【解决方案3】:

        有一篇有用的文章 here 描述了 MTOM 以及如何使用 CXF 启用它。本文还包括一个工作示例的源代码。

        【讨论】:

          猜你喜欢
          • 2010-11-09
          • 2010-09-17
          • 2017-01-29
          • 1970-01-01
          • 1970-01-01
          • 2015-12-21
          • 2017-03-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多