具有价值的做pc端网站,云主机服务器租用,百度网站开发业务,seo最新优化技术文章目录 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题
如果在向 IRIS Web 服务或客户端发送或接收 SOAP 消息时遇到问题#xff0c;请考虑以下常见场景列表#xff1a;
SOAP 消息可能包含极长的字… 文章目录 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题 第四十九章 解决 IRIS 中的 SOAP 问题 - 发送消息时出现问题
如果在向 IRIS Web 服务或客户端发送或接收 SOAP 消息时遇到问题请考虑以下常见场景列表
SOAP 消息可能包含极长的字符串或二进制值超出字符串长度限制。在这种情况下 IRIS 会抛出以下错误之一 MAXSTRING 错误数据类型验证错误也可能有其他原因
ERROR #6232: Datatype validation failed for tag your_method_name ...当向导读取 WSDL 时它假定任何字符串类型的输入或输出都可以在 IRIS 中表示为 %String。同样它假定任何 XML 类型为 base64Binary 的输入或输出都可以在 IRIS 中表示为 %xsd.base64Binar。WSDL 中没有信息来告知 SOAP 向导此输入或输出可能超出字符串长度限制。
Web 服务或客户端可能会收到 WS-Security 标头但尚未配置为识别它们。这可能会导致类似以下的一般错误
ZSOAPzInvokeClient269^%SOAP.WebClient.1此类错误也可能有其他原因。如果收到此类错误请首先检查消息是否包含 WS-Security 标头如果是请将以下内容添加到 Web 服务或客户端并重新编译
Parameter SECURITYINREQUIRE;此外如果 生成了安全策略在配置类中可能需要编辑该策略以提供缺失的详细信息请参阅编辑生成的策略。如果不这样做可能会收到如上所述的一般错误。 根据 SOAP 规范Web 服务或客户端可能需要比应有的更具体的消息格式。对于 IRIS 中没有的服务或客户端可能会发生这种情况。 遇到过以下情况此处按大约最常见到最不常见的顺序列出 Web 服务或客户端要求消息为消息中的所有元素指定 xsi:type 属性。要指定此属性的使用请参阅控制 xsi:type 属性的使用该属性适用于 Web服务和客户端。对于空字符串值Web 服务或客户端需要空元素而不是省略元素。要解决此问题可以控制空字符串参数的形式请参阅控制空字符串参数的形式该内容适用于 Web 服务和客户端。Web 服务或客户端需要特定的命名空间前缀。 IRIS 不提供指定命名空间前缀的方法。 但是对于 SOAP 信封您可以指定要使用的前缀。请参阅指定 SOAP 信封前缀它适用于 Web 服务和客户端。 Web 客户端要求引用 SOAP 操作。要解决此问题请参阅引用 SOAP 操作仅限 SOAP 1.1。 Web 服务或客户端要求在每个 SOAP 消息的开头添加 BOM字节顺序标记。由于 SOAP 消息采用 UTF-8 编码不存在字节顺序问题因此不需要 BOM。请参阅向 SOAP 消息添加字节顺序标记该内容适用于 Web 服务和客户端。 这些问题的症状取决于所使用的第三方产品。 Web 服务或客户端可能不符合 WSDL。对于 IRIS Web 服务或客户端来说这种情况不应该发生但在其他情况下可能会发生。InterSystems 已经看到过以下情况 消息中的元素不在 WSDL 所需的命名空间中。消息中元素的顺序与 WSDL 不一致。 要确定服务或客户端是否符合 WSDL请将消息与 WSDL 进行比较。 或者对于第三方 Web 服务要确定该 Web 服务是否符合 WSDL执行以下操作会很有用 使用第三方工具生成 Web 客户端。 从该 Web 客户端发送消息 如果成功则很可能 Web 服务确实期望并发送与其 WSDL 一致的消息而问题的原因在其他地方。在这种情况下将此客户端发送的消息与 IRIS 客户端发送的消息进行比较。如果不成功则可能是 Web 服务不期望或不发送与其 WSDL 一致的消息。 Web 服务或客户端可能会发送 不支持的格式的消息。检查正在使用的 WSDL 并确保它在 IRIS 中受支持很有用请参阅使用 WSDL。请注意这些详细信息在 IRIS 中会随时间而变化。