当前位置: 首页 > news >正文

第四十九章 解决 IRIS 中的 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.base64BinarWSDL 中没有信息来告知 SOAP 向导此输入或输出可能超出字符串长度限制。

  • Web 服务或客户端可能会收到 WS-Security 标头,但尚未配置为识别它们。这可能会导致类似以下的一般错误:
<ZSOAP>zInvokeClient+269^%SOAP.WebClient.1

此类错误也可能有其他原因。如果收到此类错误,请首先检查消息是否包含 WS-Security 标头;如果是,请将以下内容添加到 Web 服务或客户端并重新编译:

Parameter SECURITYIN="REQUIRE";

此外,如果 生成了安全策略(在配置类中),可能需要编辑该策略以提供缺失的详细信息;请参阅编辑生成的策略。如果不这样做,可能会收到如上所述的一般错误。

  • 根据 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,执行以下操作会很有用:

    1. 使用第三方工具生成 Web 客户端。

    2. 从该 Web 客户端发送消息:

      • 如果成功,则很可能 Web 服务确实期望并发送与其 WSDL 一致的消息,而问题的原因在其他地方。在这种情况下,将此客户端发送的消息与 IRIS 客户端发送的消息进行比较。
      • 如果不成功,则可能是 Web 服务不期望或不发送与其 WSDL 一致的消息。
  • Web 服务或客户端可能会发送 不支持的格式的消息。检查正在使用的 WSDL 并确保它在 IRIS 中受支持很有用;请参阅使用 WSDL。请注意,这些详细信息在 IRIS 中会随时间而变化。

http://www.lryc.cn/news/392859.html

相关文章:

  • STM32-HAL-FATFS(文件系统)(没做完,stm32f103zet6(有大佬的可以在评论区说一下次板子为什么挂载失败了))
  • 线性代数基础概念:矩阵
  • 【优化论】约束优化算法
  • 7寸微型FPV无人机技术详解
  • 大数据面试题之Presto[Trino](2)
  • STM32和DHT11使用显示温湿度度(代码理解)+单总线协议
  • EVM-MLIR:以MLIR编写的EVM
  • 深入Django(八)
  • 华为开发者大会2024纪要:鸿蒙OS的全新篇章与AI大模型的革命
  • 吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.7-2.8
  • 云计算渲染时代:选择Blender或KeyShot进行高效渲染
  • html5中的iframe
  • 海睿思问数(TableGPT):开创企业新一代指标应用模式
  • LM-Cocktail:一种创新的模型合并方法打破预训练语言模型微调后的性能局限,实现语言模型在一般任务与特定领域的均衡高性能
  • 默认导出(default)和命名导出
  • 开发个人Go-ChatGPT--1 项目介绍
  • 皮卡超级壁纸 | 幸运壁纸幸运壁纸app是一款涵盖了热门影视剧、动漫、风景等等资源的装饰工具,
  • 普通集群与镜像集群配置
  • 2024科技文化节程序设计竞赛
  • 玩转Easysearch语法
  • 【密码学】RSA公钥加密算法
  • 【ARMv8/v9 GIC 系列 5.1 -- GIC GICD_CTRL Enable 1 of N Wakeup Function】
  • C++怎么解决不支持字符串枚举?
  • 中英双语介绍四大会计师事务所(Big Four accounting firms)
  • ubuntu 查看联网配置
  • 【数据分享】全国乡村旅游重点镇(乡)数据(Excel/Shp格式/免费获取)
  • 停车场小程序的设计
  • 绿色金融相关数据合集(2007-2024年 具体看数据类型)
  • 【matlab 项目工期优化】基于NSGA2/3的项目工期多目标优化(时间-成本-质量-安全)
  • Python考前复习