我正在尝试制作一个非常简单的Web服务,该服务可以执行以下操作:

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

  • 由客户端决定将其解码并将其转换为pdf。

    所以,这是我的问题:
  • 我了解我们将文件编码为base64以通过Web服务进行传输,但是MTOM在哪里以及如何出现在图中?
  • 可以为我提供一种使用MTOM并将数据发送回去的简单方法。我们是否还需要在WSDL中指定某些内容?还是简单的String返回类型就足够了?为什么/为什么不呢?

  • 谢谢

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

    更新1

    足够好的解释here,现在我需要从实现级别上理解它。
    好的信息here,但是对于.Net

    更新2

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

    最佳答案

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

    MTOM的规范为hereThis页面包含示例消息。

    如果您使用的是JAX-WS环境,则可以肯定使用Annotations将其打开。如果您要手动滚动肥皂消息,则可以编写生成该消息所需的任何Java代码。本质上,MTOM意味着数据的内容移至附件,附件是邮件的单独MIME部分,并通过xop:Include元素(带有MIME部分的href)引用。

    该模式必须说base64Binary作为元素类型,但是其他属性提供了有关字节解释的提示:xmime:contentType和xmime:expectedContentType。以我的经验,JAX-B引用实现在使用它们方面有一些限制。例如,您无法获得自动将文本来回转换为字节的功能。在典型的工具包(如CXF或Glassfish)中,您将数据放入DataHandler中,然后该工具包将其转换为附件。

    关于java - MTOM如何工作+示例代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2619435/

    10-10 15:35