第三十四章 添加和使用自定义标题元素 - 支持的标头元素

文章目录

  • 第三十四章 添加和使用自定义标题元素 - 支持的标头元素
    • 支持的标头元素
    • 标头元素和 `WSDL`
    • 必需的标题元素
  • 定义自定义标题元素

第三十四章 添加和使用自定义标题元素 - 支持的标头元素

支持的标头元素

IRIS 网络服务和客户端自动支持 WS-AddressingWS-Security 标头,但不自动支持其他标头。

要在 Web 服务或客户端中指定支持的标头元素,请向类添加 XData 块并指定类参数 USECLASSNAMESPACESXData 块列出了支持的元素。类参数使 WSDL 包含适用的类型。请参阅指定支持的标头元素。

标头元素和 WSDL

Web 服务的 WSDL 公布了该 Web 服务所支持的标头元素以及与该 Web 服务通信的 Web 客户端所允许的标头元素。

对于 IRIS Web 服务,生成的 WSDL 可能不包含有关 SOAP 标头元素的信息:

  • 如果通过设置 HeadersOut 属性手动添加 SOAP 标头,请确保按照指定支持的标头元素中所述在 XData 块中声明它们。同时在 Web 服务类中将类参数 USECLASSNAMESPACES 指定为 1

如果遵循这些步骤,WSDL 将包含所有适用信息。否则,WSDL 将不包含所有适用信息,必须将 WSDL 保存到文件中,并根据需要手动编辑它。

  • 如果通过设置 SecurityOut 属性来添加 WS-Security 标头(如“保护 Web 服务”中所述),WSDL 将不包含所有需要的信息。(这是因为 WSDL 是在编译时生成的,而标头是在运行时添加的。)在这种情况下,请将 WSDL 保存到文件中,并根据需要手动编辑它。

出于多种原因,使用 WS-Policy 添加 WS-Security 元素更简单、更容易。使用 WS-Policy,生成的 WSDL 包含所有需要的信息。

  • 在其他情况下,生成的 WSDL 包含所有需要的信息。

请注意,W3C 规范并不要求 Web 服务提供生成的 WSDL

必需的标题元素

如果给定的报头元素指定 mustUnderstand=1,则该元素被视为强制元素,接收者必须支持它。除非接收者识别所有强制报头元素,否则接收者无法处理该消息。

按照 SOAP 标准, 会拒绝包含必需但不受支持的标头元素的 SOAP 消息。具体来说,如果 Web 服务或客户端收到包含 mustUnderstand=1 的标头元素的消息,并且该服务或客户端不支持该标头元素,则该服务或客户端会发出 SOAP 错误,然后忽略该消息。

定义自定义标题元素

如果使用 SOAP 向导根据给定的 WSDL 创建 Web 服务或 Web 客户端,系统将生成类来根据需要表示任何标题元素。

如果手动创建 Web 服务或客户端,则必须手动定义类来表示任何自定义标头元素。具体操作如下:

  1. 对于每个自定义标题元素,创建 %SOAP.Header 的子类。
  2. 指定 NAMESPACE 参数来指示标头元素的命名空间。
  3. 指定 XMLNAME 参数来指示标题元素的名称。
  4. 在子类中,定义属性以包含您需要的标头信息。默认情况下,属性将投影到 <Header> 元素内的元素。
  5. 可选地指定 XMLFORMAT 参数,该参数控制此标头元素的格式。默认情况下,标头元素始终采用文字格式(而不是 SOAP 编码)。
Class Scenario1.MyHeaderElement Extends %SOAP.Header
{Parameter NAMESPACE = "https://www.myheaders.org";Parameter XMLNAME = "MyHeader";Property Subelement1 As %String;Property Subelement2 As %String;}

此标头元素在 SOAP 消息中显示如下:

<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope [parts omitted]><SOAP-ENV:Header><MyHeader xmlns="https://www.myheaders.org"xmlns:hdr="https://www.myheaders.org"><Subelement1>abc</Subelement1><Subelement2>def</Subelement2></MyHeader></SOAP-ENV:Header><SOAP-ENV:Body>[omitted]</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 数据库导入dmp文件

荆轲刺秦王 从线上正式环境导出的 dmp 文件&#xff0c;导入到本地 oracle 数据库。 1. 创建用户: CREATE USER hf_chip IDENTIFIED BY hf_chip; 2. 授予 CONNECT 和 RESOURCE 基本权限给新用户。 GRANT CONNECT, RESOURCE TO hf_chip; 3. 创建表空间 CREATE TABLESPACE…

python技术面试题(其三)

二十一&#xff0c; 谈谈正则的贪婪模式和非贪婪模式 在数量级匹配符中使用 默认为贪婪模式&#xff0c;用最多量的方式完成匹配 数量级匹配符后加&#xff1f;即为非贪婪 用最少的方式完成匹配 二十二&#xff0c; a1 aa1 的堆栈内存过程 不可变类型&#xff0c;在调用栈里…

【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;初步了解 二叉搜索树 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀map与set &#x1f4d2;1.…

Scala Iterator(迭代器)

Scala Iterator(迭代器) Scala Iterator(迭代器)是一种用于访问集合元素序列的抽象数据类型。它提供了一种高效的方式来逐个访问集合中的元素,而不需要暴露其底层结构。Scala中的迭代器是不可变的,这意味着它们只能被单向遍历一次。一旦迭代器被消耗完,就不能再重新使用…

C# 实战-Controls属性

在C#窗体应用中&#xff0c;Controls是Control类或其派生类&#xff08;如Form、Panel、GroupBox等&#xff09;的一个属性。它表示控件集合&#xff0c;这个集合包含了控件的所有子控件。通过Controls属性可以访问、添加或删除控件。以下是几个详细的例子来说明如何理解和使用…

开发uniapp插件包aar文件,使uniapp可以调用jar包

背景 使用 uniapp 开发应用时&#xff0c;很多时候都需要调用第三方的sdk&#xff0c;一般以 jar 为主。为了应对这个问题&#xff0c;官方提供了插件方案&#xff0c;可以将第三方 jar 包进行封装为 aar 包后&#xff0c;再集成到 uniapp 中使用。 一、环境安装工具 1、jdk…

AI大模型是真的贵

背景&#xff1a; 微软和谷歌母公司Alphabet最新公布的季度财报均显示&#xff0c;由于企业客户在人工智能服务上的投入增加&#xff0c;其云计算业务实现了显著的收入增长。尽管Meta在将人工智能技术转化为收益方面稍显滞后&#xff0c;但它表示&#xff0c;其相关努力对提高…

C语言练习02-数组

一、求最值 已知数组元素为{33,5,22,44,55}&#xff0c;找出数组中的最大值并打印在控制台 #include<stdio.h> #include<math.h>int main() {int arr[] {33,5,22,44,55};int max arr[0];int len sizeof(arr) / sizeof(int); //注意&#xff1a;sizeof(arr)计算…

力扣(2024.06.20)

1. 48——旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 标签&#xff1a;数组&#xff0c;数学&#xff0c;矩阵 代码…

【无线传感网】分簇路由算法介绍

目录 1、LEACH路由算法 2、PEGASIS 算法 3、TEEN 算法 5、APTEEN 5、LEACH-C 算法 无线传感网中的路由协议就是寻找一条路径让网络中节点沿着这条路径将数据信息传输出去。路由协议的两大关键要点就是路径的优化和数据的分组,在传统计算机网络中,是将网络的拓扑…

Linux系统安装Dify结合内网穿透实现远程访问本地LLM开发平台

文章目录 前言1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署大语言模型应用开发平台Dify,并结合cpolar内网穿透工具实现公网环境远程访问…

【驱动篇】龙芯LS2K0300之驱动示例

实验环境 开发板&#xff1a;龙芯LS2K0300久久派 网络配置&#xff1a;配置好ssh连接&#xff0c;通过网口可以scp文件到开发板&#xff0c;参考前一篇文章 串口配置&#xff1a;通过CH340T模块连接好开发板上的UART0 示例程序 驱动代码 #include <linux/init.h> #…

python数组列表操作简记

python数组列表操作简记 一、python列表、数组增删元素1.1列表增删元素1.2数组增删元素1.2.1array数组1.2.2numpy数组 二、python列表、数组排序2.1列表排序2.1.1数值类型或无数字字符串类型2.1.2数字和字母组成的字符串类型2.1.3多字段类型 2.2数组排序2.2.1array数组2.2.2num…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] API集群访问频次统计(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

thewall-文件包含-CAP_DAC_READ_SEARCH

thewalleasyAkamai 防火墙、绕过wall、fuzz、文件包含利用、exiftool提权、sudo提权、ssh私钥利用 **后续需要虚拟机的私信我&#xff0c;我会打包进行文章发布链接&#xff0c;请持续关注&#xff01;&#xff01;&#xff01;** 服务探测 ┌──(kali㉿kali)-[~] └─$ su…

C#如何把DLL打包进EXE制作单文件绿色程序

在C#中&#xff0c;将DLL打包进EXE通常涉及到一个过程&#xff0c;这个过程会将DLL的内容和EXE文件结合在一起&#xff0c;使得最终的EXE文件在运行时可以不依赖于外部的DLL文件。这个过程可以通过ILMerge工具或者.NET Core的发布功能来实现。 使用ILMerge ILMerge是一个开源…

Python酷库之旅-第三方库openpyxl(01)

目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…

前端基础操作1——利用nvm任意切换(管理)node版本

在实际前端项目开发过程中&#xff0c;同时开发多个项目或者切换新项目时&#xff0c;因为node版本问题造成项目无法运行的问题比比皆是&#xff0c;这时候通过nvm管理切换不同版本的node&#xff0c;就能很快进入开发模式&#xff0c;避免因为环境问题浪费大量精力&#xff0c…

安卓系统安装linux搭建随手服务器termux平替软件介绍

引言 旧手机丢可惜&#xff0c;可以用ZeroTermux&#xff08;一款代替termux&#xff09;的超级终端&#xff0c;来模拟Linux&#xff08;甚至你可以模拟Win&#xff0c;只要性能够用&#xff09; ps&#xff1a;此软件只是termux的增强版&#xff0c;相当于增加右边菜单&…

校园任务平台系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;论坛管理&#xff0c;任务咨询管理&#xff0c;用户管理&#xff0c;基础数据管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;任务资讯公告&#…