问题标签 [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 投票
1 回答
986 浏览

wcf - 为 WCF 服务打开 MTOM 的性能影响

如果为实际上没有通过网络传输任何二进制文件的 WCF 服务打开 MTOM,会不会有任何明显的性能影响?

0 投票
2 回答
3473 浏览

c# - Axis2 Web 服务的 C# 客户端抱怨“但预期为 'text/xml'”

我的 C# 示例客户端 ASP.NET 程序在我的 Axis2 服务器中成功运行了一个调用,但客户端似乎不喜欢响应。

我得到:

客户端发现响应内容类型为“多部分/相关”;边界=MIMEBoundaryurn_uuid_38D413ACFC9D56F28E1258666845186;类型=“应用程序/xop+xml”;start="<0.urn:uuid:38D413ACFC9D56F28E1258666845187@apache.org>"; start-info="text/xml"',但应为'text/xml'。

根据 MSDN 论坛,我应该启用 MTOM,但他们只对现在过时的 WSE 3 包进行了解释。

在 WCF 空间中,对于 C# 中的 ASP.NET 程序,如何启用 MTOM 或以其他方式修复此响应内容类型不匹配?实际上,接下来我需要 MTOM。

0 投票
1 回答
2463 浏览

java - 查找DataHandler的InputStream是否为空

在我的应用程序中,我开发了获取附件的 Web 服务。该文件通过 JaxB 映射到 DataHandler 对象,我可以通过 DataHandler.getInputStream() 访问该文件

我的问题是这样的:当 web 服务请求中存在文件属性,但没有附加文件时,我仍然得到 DataHandler 对象,它的 getInputStream().available() = 11 字节(我猜是一个标题......? ?)。

所以我可以知道 inputStream 是空的吗?

谢谢, 阿隆

0 投票
1 回答
6012 浏览

java - Spring Web 服务框架中的流 MTOM Web 服务

我想使用 MTOM 和 Spring WS 将大文件从服务器发送到客户端。我意识到这不是这类事情的最佳方法,但这是一个要求。我设置了 MTOM,它适用于 50mb 左右的小文件。我遇到较大文件的内存不足错误,通过更改不同的堆空间大小,我可以发送稍大的文件,但没有接近 1gb。1GB 是我的测试用例。如何将 MTOM 服务从服务器流式传输或分块到客户端?我将 Java 6 update 17、Tomcat 6 和 Spring WS 1.5.7 与 SaajSoapMessageFactory 一起使用。

我找到了一个使用 jax-ws 进行流式传输的示例,但我不确定如何将其合并到 Spring WS 端点中。

使用 MTOM/XOP 优化二进制数据传输

0 投票
2 回答
10145 浏览

java - 使用 JAX-WS 构建大型 MTOM/XOP 消息

我有一个关于将 MTOM/XOP 与 JAX-WS 一起使用的问题。我正在编写一个发送大量二进制数据的 Web 服务。客户端请求多个文件,服务器在响应中返回这些文件。

我能够让它正确构建响应,以便它正确实现 XOP,但我遇到了与内存相关的问题,因为它在发送之前将整个响应存储在内存中。此 Web 服务发送的文件可能会变得非常大(例如千兆字节),因此不能将响应存储在内存中。

这个 Oracle 网站(以及这个网站)似乎解决了这个问题,但我就是不明白。我认为他们使用一个DataHandler对象来流式传输请求/响应,但我无法弄清楚他们如何实例化它。

我正在使用wsimport. 我将 JAX-WS RI 2.1.6 与 Java 6 一起使用。

如何在构建响应时发送响应,而不必先将其全部存储在内存中?

在此先感谢您的帮助。


更新 12/17:我在保存二进制数据的 WSDL 中的模式元素中添加了以下属性。这会导致wsimportDataHandler对象添加到 JAXB 类。FileDataHandler然后可以将A添加到响应中,而不是添加文件的全部内容,从而允许服务器流式传输每个文件的内容,而不是将它们全部保存在内存中:

因此,服务器现在正确构建响应,客户端在收到请求时正确地将每个文件保存到磁盘。但是,出于某种原因,客户端仍将整个响应读入内存。


服务器代码(SIB):

客户端代码:

0 投票
2 回答
899 浏览

c# - MTOM 是否需要 WCF 中的 messageContract?

在使用 Mtom 时有什么方法可以使用数据合同吗?

0 投票
2 回答
21177 浏览

soap - 如何使用soapUI 测试MTOM Web 服务?

我已经构建了一个包装Apache FOP的网络服务。您向它发送 XML,它会为您提供一个包含渲染 PDF 的 MTOM 流。现在它可以工作了,我想对其进行一些性能测试。soapUI 说他们支持 MTOM,我将它用于我所有的其他 web 服务性能测试,所以如果我不必编写自定义测试工具那就太好了。

所以问题来了:我在soapUI中得到了响应,它看起来像这样:

如何让soapUI为我转储和解码二进制数据?我想确保它是一个有效的 PDF 等等。(为了简洁起见,我已经截断了响应中的数据,并对其进行了修改以保护有罪者!所以在这篇文章中它不是真正的 PDF 数据)

更新:这是soapUI在“原始”响应选项卡中显示的内容:

0 投票
2 回答
36764 浏览

.net - basicHttpBinding 与 wsHttpBinding

在 WCF 端点中,basicHttpBinding 和 wsHttpBinding 有什么区别?什么时候应该使用每个?

0 投票
1 回答
1059 浏览

java - Tomcat 6 XFire MTOM web 服务问题

我在 tomcat 上使用 XFire 1.2.6 作为 Web 服务实现。服务是使用 XFireProxyFactory 和 @EnableMTOM 注释创建的。客户端也是 XFire 并且正在使用 MTOM。

在 Tomcat 5.5.20 中一切正常,但在 Tomcat 6.0.20中由于某种原因失败了。尝试从客户端访问 Web 服务时,客户端出现以下错误原因:

问题是服务器日志中没有任何内容。

当我在客户端禁用 MTOB 时,它会一直工作,直到我请求一个实际需要 mtom 的方法。

Tomcat 6 相对于 tomcat 5.5 的哪些变化可能会导致 mtom 问题?我知道我没有提供太多信息,但我没有更多信息,而且我想不出去哪里找。即使是狂野的问题也值得赞赏。

编辑:Webapp 日志显示 Web 服务部署正常。当客户端未启用 mtom 时,我可以调用 Web 服务。只是在 mtom eanbled 客户端的情况下,我收到此错误并且服务器上没有日志。

0 投票
3 回答
3132 浏览

wcf - WCF: (MTOM) 有没有办法改变 xop:Content 中使用的方案 WCF 生成的引用 uris?

在处理流式传输的 MTOM 请求时, WCFhttp://tempuri/1/number用于 Content-ID uri 引用。

有什么方法可以强制 WCF 为 xop:Include 使用不同的 Content-ID 引用?

问题背景:

我正在为支持 MTOM 的 jax ws java Web 服务构建一个 .NET 客户端,该服务处理流式大数据上传。我手工制作了服务和数据联系人(WSDL 生成的合同不正确并且不允许流式传输)。

问题是 Web 服务 (jax ws) 没有收到包含数据的请求正文。

它接收在标头中传输的数据。

我们已经为 ws 构建了一个 java 客户端——这个可以工作。

从 java 和 wcf 发出请求时,我已经捕获并比较了 HTTP 流量,唯一的区别是在发布多部分数据时如何生成 Content-ID 引用:

  • WCF 使用http://tempuri/1/...产生编码值的 Content-ID 引用,例如href="cid:http%3A%2F%2Ftempuri.org%2F1%2F634019957020047928"

  • Java 客户端使用“电子邮件风格”的 uri,例如href="cid:3f3ec388-8cd9-47aa-a603-fb1bc17935b8@example.jaxws.sun.com"

这些在以下 xop-includes 中产生(数据是肥皂体中的唯一元素)(XOP 包括规范


稍后,在多部分数据中,内容由未编码的 Content-ID 引用:

我想jax Web 服务框架中可能存在错误,它无法识别 WCF 生成的+urlencoded Content-ID uri 引用。

有什么方法可以强制 WCF 为 xop:Include 使用不同的 Content-ID 引用?


编辑:我找到了具有 GenerateUriForMimePart 方法的 XmlMtomWriter,它用于生成 Content-ID。

似乎 ID 生成以任何方式都不可覆盖。

这里描述了一个类似的问题,提供的答案没有帮助:http ://social.msdn.microsoft.com/Forums/en/wcf/thread/f90affbd-f431-4602-a81d-cc66c049e351