问题标签 [mtom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1526 浏览

asp.net - Client found response content type of 'multipart/related; type="application/xop+xml"

When I am calling Web service method, and getting this error,

The request failed with an empty response."

I m exacting "application/soap+xml" now , but how can I get "application/xop+xml" response?.

I have to solve this problem,

Thanks for any advice...

0 投票
1 回答
8220 浏览

c# - 解析/反序列化 MTOM/XOP 数据 .NET

如何解析/反序列化使用 WCF 从 Web 服务获得的MTOM / XOP响应?我在磁盘上有响应。我已复制以下回复:

任何帮助深表感谢。

0 投票
1 回答
2569 浏览

c# - MTOM - 在 VS 2010 中读取时遇到无效的 MIME 内容类型标头

我在磁盘上有一个 MTOM 响应,我正在尝试加载和解析响应。在创建 MTOM 阅读器时,我不断收到错误消息。

这是一个错误还是内容类型的标题真的意味着 Visual Studio 无法理解内容类型?

这是创建 MTOM 阅读器的简单代码。

0 投票
1 回答
7861 浏览

c# - 创建 MTOM 并对其进行反序列化

我一直在使用一些代码通过使用MSDN中的代码来创建 MTOM 。

似乎有一个错误,我不明白问题出在哪里,因为论坛上的一位用户指出有一个错误。

文件 (JPEG) 数据在反序列化后损坏。下面列出了完整的代码。

如果有人可以帮助我指出问题所在,我将不胜感激。我是 XOP/MTOM 的新手,发现很难找出错误可能出在哪里。序列化或反序列化。

谢谢

0 投票
1 回答
3189 浏览

php - php , 如何从 SOAP MTOM 附件中解码/保存文件?

我正在尝试获取内容/保存 webservice 返回的 zipfile 。但是,似乎 API 提供了以 Base64 二进制格式编码的文件,并根据 SOAP MTOM 标准包含在响应中。我已经尝试了 2 个小时的一些解决方法,因此我们将不胜感激任何帮助。响应如下所示:

0 投票
0 回答
553 浏览

java - 将 MTOM 与 StreamingAttachment 一起使用 - 码头启动失败

请指教!

在服务器端定义:

///////////////
@StreamingAttachment(parseEagerly=true)
@MTOM(threshold=10000000)
///////////////

一切都编译没有错误。

启动码头时,显示以下错误:

2012-05-16 04:31:48.403::INFO: jetty-6.1.4 严重:2012 年 5 月 16 日上午 4:31:49:WSSERVLET11:无法解析运行时描述符:javax.xml.ws.WebServiceException:注释@ com.sun.xml.internal.ws.developer.Str mingAttachment(parseEagerly=true, dir=, memoryThreshold=1048576) 无法识别,com.sun.xml.internal.ws.developer.StreamingAttamentFeature 类的至少一个构造函数应该标记为@FeatureConstructor (com.sun.xml.ws.transport.http.servlet.WSServletContextListener::contextInitialized) javax.xml.ws.WebServiceException: Annotation @com.sun.xml.internal.ws.developer.StreamingAttachment(parseEagerly =true, dir=, memoryThreshold=1048576) 无法识别,com.sun.xml.internal.ws.developer.StreamingAttachmentFeature 类的至少一个构造函数应该用@FeatureConstructor 标记

0 投票
1 回答
15297 浏览

java - 从数据处理程序写入文件

我使用 CXF/MTOM 创建了一个用于传输大文件(超过 700Mo)的 Web 服务,我设法将文件传输到服务器,现在我的问题是优化在磁盘中写入数据,我将给出示例:

使用字节会导致我出现 OutOfMemory,所以我宁愿使用这个:

上传 700Mo 需要 2 分钟。

还有什么其他有效的方法?

谢谢

0 投票
0 回答
4484 浏览

java - 如何在 Metro 下解析带有 MTOM 附件的入站消息而不提取所有附件数据?

使用 JAX-WS-RI 或 Metro,我可以使用 com.sun.xml.ws.api.server.AsyncProvider 接口编写 WebService。

我可以选择获取包括 SOAP 标头在内的整个消息

然后我可以写一些东西来解析消息并相应地处理

然而,这样做的部分原因是为了使现有的基于 XML 的应用程序适应 SOAP 堆栈。该应用程序为它所接受的消息定义了一套完整的模式,并且很容易生成一个 WSDL 来定义服务。

对于小的 XML 消息,这一切都很好。

但是,如果我希望在一些消息庞大的操作中以更面向流的方式处理 XML,我会遇到两个使用 MTOM 附件的问题。我将我的 Provider 的设置更改如下;

我将适当的 MTOM 策略添加到我的 WSDL;

并酌情为该操作声明我的消息模式

适当设置绑定;

我生成客户端并修改代码

并且 http 转储显示数据正在以多部分 mime 的形式发送,并在“消息正文”中使用适当的 xop:include 元素

在服务器内部,我得到一个附件;

然后我希望顶部解析传入的消息并获取批量附件的上下文 - 例如包含它的元素的名称 - 但不是批量附件本身,YET;

希望附件解析器还没有读取所有输入的 HTTP 流,或者如果它已经将它分块到一个文件中,然后我可以在其中逐块读取它。问题是我找不到一种解析 Message 的方法,它不会将传入的消息转换为附件中的 base64 编码数据。在我得到指示元素开始的 SAX/StaX 事件后,它后面跟着一个字符事件,它是 base64 编码的数据。查看 StreamMessage 的代码,无法“插入”任何 XMLReader 或 XMLStreamReader 等。在 Message 已经绑定到的现有 XMLStreamReader 的“前面”(并不令人惊讶,因为我们正在处理消息)。但是那个 XMLStreamReader 实现是一个 com.sun.xml.ws.encoding.MtomCodec$MtomXMLStreamReaderEx ,它总是' 将一行中的附件解包到内存中。无法对 com.sun.xml.ws.encoding.MtomCodec 类进行参数化,以便它不会首先将事件传递给其内部的 MtomXMLStreamReaderEx 类,该类将内联附件解包。

我尝试将附件读入一个临时文件,然后将消息上下文附件替换为 FileDataSource,但由于 Metro 忽略了这些,因此只会使原始 DataSource 引发 ReadOnce 类型错误。

我还尝试通过将注释设置为禁用来关闭提供程序中的 MTOM;

然后删除它,然后删除 StreamingAttachment 注释无济于事。我还在 sun-jaxws.xml 文件中为它的端点元素设置了 enable-mtom="false" 属性,同样无济于事;似乎 xop:Include 解析是硬连线的。我不想更改 wsdl,因为我确实希望客户尽可能使用 MTOM。(但请参阅下面的我的 swaRef 答案)

如果我使用 swaRef,我可以让 Metro 做我想做的事,但我的理解是 MTOM 是获得支持的协议?使用 swaRef 我必须编辑 WSDL ;

我还必须生成一个新客户端并以不同的方式调用 sendBulk 方法;

但是现在当我解析数据元素时,我得到了相应的 cid,然后我可以根据需要使用它来检索附件;

因此,对于 MTOM 和 Metro,尽管附件可能还没有被读取到我解析数据元素的程度,或者确实以块的形式有效地流式传输到临时文件,但我无法读取输入消息的“其余部分”没有将整个依恋读入记忆中,这似乎是自我挫败?除了倾倒 Metro - 建议重新:Axis,欢迎 CXF - 有没有人发现这个问题的任何方法?

记录了一个功能请求

0 投票
1 回答
732 浏览

soap - 使用带有 MTOM 附件的 wsdl2cpp 客户端生成 wso2 cpp 代码

我有一个使用axis2(Java)公开的soap Web服务,它将POJO序列化,例如具有名称的Person等,作为动作响应。此外,我有一个动作,它使用了一个序列化的 DataHandler,以便将二进制附件放入响应中,使用<xop:Include ...></xop:Include>

我已经使用 wso2 wsfcpp 提供的 wsdl2cpp 在 c++ 中生成了客户端代码。getPerson(personId) 操作工作正常,结果符合预期。但是,尽管生成的代码似乎无法正常工作,但 getFile(someId) 操作是成功的。

在axis2.xml 以及客户端中设置为enableMTOM=true 的服务。我什至添加了 Options.setEnableMTOM(true) 以确保在客户端的主要部分。

我认为问题在于从 wsdl 生成的代码,因为 getFile(someId) 响应的信封是有效的(我已经使用axis2c api手动测试了它,我可以按预期检索文件)。

以下是响应的 wsdl(从 axis2 Java 生成)中包含的模式:

这是用于生成客户端代码的命令行:

这是从服务收到的响应:

wsdl 中是否缺少某些内容,或者该功能(带有 MTOM 客户端代码生成的肥皂)是否由 wsfcpp 实现?

提前致谢!

0 投票
1 回答
1041 浏览

java - Java XML 验证和 MTOM

Java XML 验证是否支持启用 MTOM 的消息?在验证过程中引发了以下错误。

但是,如果发送的消息没有 MTOM,则验证通过。

有任何想法吗?