- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我已经回答过的那些“问题”之一,但是根据一周的谷歌搜索,我发布的信息似乎几乎为零。
TL;DR:WCF MTOM 编码的 BasicHttpBinding 客户端到外部/第三部分,非 .NET Web 服务在 MTOM 响应的 XOP 处理上阻塞 - 基本上 MTOM 编码器似乎期望二进制元素中的 base64 有效负载,但运行到... 指令并且无法将 SOAP/XML 反序列化为运行时对象,从而在该问题的标题中引发错误。
错误:命名空间“http://mynamespace”中的结束元素“MyBinaryData” ' 预期的。从命名空间“http://www.w3.org/2004/08/xop/”找到元素“xop:Include” '
如前所述,关于这个主题的内容并不多,我猜 b/c MS 的大部分 WCF 文档都是基于服务开发编写的,而不是客户端(虽然有一些,公平地说) .
我不会深入讨论初始设置的细节,因为我要回答我自己的问题,但我会在答案前说这更类似于默认设置WCF MTOM 的配置比没有。
另外,我知道 WCF 很旧、很无聊,并且 MS 不再积极开发它,但它仍然受到支持,并且有很多用途。事实上我没有太多选择,必须找到一种方法来完成这项工作。这就是为什么我要与其他必须处理这种头痛问题的人分享我的发现。
最佳答案
TL;DR:检查http header 以查看服务响应是否为“Transfer-Encoding:分块”(流式传输)给您,如果是,请在绑定(bind)配置中使用transferMode =“StreamedResponse”。
因此,在谷歌搜索几天没有帮助后,我启动了 Fiddler 来捕获 http 流量 - 这需要您的 WCF 基本 http 绑定(bind)配置来代理到 Fiddler (我认为默认情况下为 http://localhost:8888 ),具体取决于您的目标位置服务驻留时,您可能需要也可能不需要配置 Fiddler 的网关设置(公司代理等)。
这使我能够看到我的客户与他们的服务之间发送的原始文本;所有有效负载都很好,这意味着,就我而言,来自服务的 MTOM/XOP 响应已完全传输,并且 WCF 运行时无法正确解释响应。我看到的另一个关键问题是 Transfer-Encoding http header 被“分块”并且没有 Content-Length header ...这意味着该服务正在流式传输响应,而不是缓冲响应。现在有一点旁注:MS 的 WCF MTOM 文档有一个标注说您应该始终在绑定(bind)配置中使用“Buffered”作为传输模式...但没有提到这实际上只适用于服务,不一定适用于客户端!
很自然地,我简单地进入我的配置文件,找到system.serviceModel >>绑定(bind)>> basicHttpBinding集合,找到我的特定绑定(bind)配置并设置transferMode =“StreamedResponse”(因为第3方服务正在将我的响应流式传输回来给我的客户)。
关于java - WCF MTOM/XOP 客户端反序列化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58962525/
我有下一个问题: 我使用一些 Bulldozer (xop) 指令进行了一些与 xop 检查相关的测试。 我必须仅在 Bulldozer 处理器上运行此测试。 如何检查我的处理器在编译时是否支持 xo
我们的应用程序使用 SOAP 将文件附件发送到 Web 服务。该服务在 Oracle Service Bus 11g 上运行。我们在客户端使用Spring WS + SAAJ + MTOM来发送请求。
这是我已经回答过的那些“问题”之一,但是根据一周的谷歌搜索,我发布的信息似乎几乎为零。 TL;DR:WCF MTOM 编码的 BasicHttpBinding 客户端到外部/第三部分,非 .NET W
我的数据源已从 Base64 嵌入图像数据切换到 XOP 图像数据。我正在使用 Java/JAXB 来解码数据,但找不到任何描述其完成方式的良好来源。所有引用文献似乎都描述了使用 SOAP 消息执行此
我正在尝试使用 MTOM + XOP 在 Spring Web 服务中返回一个 byte[] 但是当编码结果时它会抛出一个带有消息的 SAXParseException: cvc-type.3.1.2
我想知道使用 WS 和 MTOM 的主要好处是什么。 (不流式传输附件) 据我了解,有效负载不会包含将成为 MIME 一部分的二进制数据 “当您使用 MTOM/XOP 优化 SOAP 消息时,XOP
我如何解析/反序列化 MTOM/XOP我从使用 WCF 的 Web 服务获得的响应?我在磁盘上有响应。我已复制以下回复: Date: Wed, 02 May 2012 09:38:57 GMT Ser
我对将 MTOM/XOP 与 JAX-WS 结合使用有疑问。我正在编写一个发送大量二进制数据的网络服务。客户端请求多个文件,服务器在响应中返回文件。 我能够让它正确构建响应,从而正确实现 XOP,但我
我只想知道,有没有简单的方法来解析 MTOM/XOP SOAP 响应。问题是我使用纯 HTTP 发送 soap 消息和 javax.xml 来解析响应。但是有些服务用 mulipart/related
我正在尝试连接到描述为 .wsdl 文件的第三方服务。我无法提供整个文件,因为它太长了,但重要的部分是: .ec2HttpSoap12Endpoint/"/>
我有一个 XML 模式,它定义了一个元素,该元素可以是 base64 文本或 xop:Include 元素。目前,这被定义为 base64Binary 类型: 当我插入 xop:Include 元素
我正在使用一个 Web 服务,在该服务中我发送了一个带有附件的请求,我们从服务器收到了包含各种信息的响应。我在另一个问题 Adding an attachment to SOAP request 中记
在使用我公司购买的产品的网络服务时,我遇到了一个奇怪的问题。该产品名为 Campaign Commander,由一家名为 Email Vision 的公司制造。我们正在尝试使用“Data Mass U
我正在尝试使用他们的 FileTransfer API 将批量数据交换调用上传到 eBay。为此,我必须向 eBay 服务器发布一个 xml 请求字符串,但 xml请求包含 必须包含您正在传输的数据的
我在与 Java WS 交谈时遇到问题。我使用“wsHttpBinding”绑定(bind)客户端证书进行身份验证,消息编码设置为“文本”,.net 框架为 4.0。服务器端是 Java,我无法控制它
我是一名优秀的程序员,十分优秀!