我正在尝试创建一个非常简单的Web服务,它执行以下操作:
>客户端命中Web服务请求文件.
> Web服务的服务类查询具有键(搜索查询)的哈希表,并将值作为文件的base64encoded值(例如pdf)
>现在,我需要使用MTOM将存储在哈希表中的base64encoded值返回给客户端.
客户端需要对其进行解码并将其转换为pdf.
所以,这是我的问题:
>我理解我们将文件编码为base64以便通过Web服务进行传输,但是MTOM在哪里以及如何进入图片?
>有人能为我提供一个使用MTOM并将数据发回的简单方法.我们还需要在WSDL中指定一些东西吗?或简单的String返回类型就足够了?为什么/为什么不呢?
谢谢
我已经看过这个code.它使用了很多注释,我只需要一个使用MTOM的简单java代码.这里的J2EE新手:)
更新1
足够的解释here,现在我需要从实现层面理解它.
好消息here,但是.Net
更新2
什么应该是方法“createMTOM(int id)”的返回类型?
解决方法
你似乎在混淆实现和协议.
如果您使用的是JAX-WS环境,那么您最有可能使用Annotations将其打开.如果您手动滚动肥皂消息,则编写需要编写的任何Java代码来生成它.从本质上讲,MTOM意味着数据的内容移动到附件,该附件是消息的单独MIME部分,并通过xop:Include元素和MIME部分的href引用.
模式必须说base64Binary作为元素类型,但是附加属性给出了字节解释的提示:xmime:contentType和xmime:expectedContentType.根据我的经验,JAX-B参考实现对这些的使用有一些限制.例如,您不能让它自动将文本来回转换为字节.在像CXF或Glassfish这样的典型工具包中,您将数据放入DataHandler,然后工具包将其转换为附件.