WSO2 ESB XML定义语法(3)
6.Property Mediator
通过Synapse调解的每条消息都可以具有一组关联的属性。Synapse引擎和底层传输在处理的每条消息上设置了许多属性,用户可以操纵这些属性来修改消息流的运行时行为。此外,用户可以在消息上设置他自己的属性,这在管理消息流状态和存储特定于场景的变量时非常有用。例如,在某些情况下,用户可能希望在处理响应时访问请求有效负载中的特定值。
属性中介用于操纵消息的属性。此介体可用于设置和删除属性值。在设置属性值时,输入可以是由XPath表达式生成的常量或变量值。配置属性Mediator的语法如下。
<property name="string" [action=set|remove] [type="string"] (value="literal" | expression="xpath")
[scope=default|transport|axis2|axis2-client] [pattern="regex" [group="integer"]]>
<xml-element/>?
</property>
'name'属性指定需要设置或删除的属性的名称,而'action'属性指定需要由Mediator执行的确切操作。如果未指定,则操作将默认为“设置”。
设置属性值时,必须指定“value”或“expression”属性。'value'属性可用于将常量设置为属性值,而'expression'属性可用于指定XPath表达式(http://synapse.apache.org/userguide/xpath.html)。如果指定了XPath表达式,Synapse将对消息进行评估,以确定需要分配给属性的值。
Synapse属性是作用域。因此,在使用此Mediator时,用户应指定将设置或删除属性的范围。如果未指定,则属性介体将在“默认”范围内工作。只要事务(请求 - 响应)存在,此范围中设置的属性就会持续。在范围'axis2'上设置的属性具有较短的寿命,它主要用于将参数传递给基础Axis2引擎。“传输”范围中设置的属性将被视为传输标头。例如,如果需要使用传出请求发送名为“CustomHeader”的HTTP标头,
<property name="CustomHeader" value="some value" scope="transport" type="type name"/>
这将强制Synapse发送名为“CustomHeader”的传输标头以及传出消息。Property mediator还支持名为'axis2-client'的作用域。在此范围中设置的属性将被视为Axis2客户端选项。
使用属性存储用户或方案特定信息时,建议始终使用“默认”范围。其他范围不应用于自定义开发或中介工作,因为它们有可能改变基础Axis2引擎和传输框架的行为。
默认情况下,属性介体将所有属性值设置为字符串。可以通过指定“type”属性来设置其他类型的属性。此属性可以接受以下值之一。
- STRING
- BOOLEAN
- DOUBLE
- FLOAT
- INTEGER
- LONG
- SHORT
- OM
类型名称区分大小写。类型“OM”可用于在消息上下文中设置XML属性值。当在调解期间与属性介体关联的表达式求值为XML节点时,这将非常有用。将type属性设置为'OM'后,生成的XML将在将其分配给属性之前转换为AXIOM OMElement。
也可以使用属性mediator将一些静态XML内容设置为属性值。为此,请将静态XML内容指定为“property”元素的子节点,而不是使用“value”属性。
WSO2 ESB XML定义语法(3)的更多相关文章
- WSO2 ESB XML定义语法(1)
1.(基于Apache Synapse的WSO2 ESB实现)参考文件位置: http://synapse.apache.org/userguide/config.html 基于Apache Syna ...
- WSO2 ESB XML定义语法(2)
5.Proxy Service 配置 <proxy>元素用于定义Synapse代理服务. 通过基础Axis2引擎在指定的传输上创建和公开代理服务,根据标准的Axis2约定(即基于服务名称) ...
- 自己对WSO2 ESB 见解
这周没想到要更新什么内容,就把我最近工作接触的WSO2 ESB简单介绍下吧. 前提: 一切文档,知识都要与官方文档为准. WSO2 ESB: http://wso2.com/products/ ...
- XML DTD语法详解
XML DTD详解 XML DTD详解 前情提要与本文内容介绍 前面的两篇XML相关博文: 第一篇是介绍格式正规的XML: 格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节 第二 ...
- JAVA企业级开发-xml基础语法&约束&解析(04)
一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...
- java日志框架系列(4):logback框架xml配置文件语法
1.xml配置文件语法 由于logback配置文件语法特别灵活,因此无法用DTD或schema进行定义. 1.配置文件基本结构 配置文件基本结构:以<configuration>标签开头, ...
- WSO2 ESB
什么是WSO2 ESB? WSO2 ESB是一个轻量级的易于使用的企业服务资源总线.WSO2 ESB允许系统管理员和SOA架构师,消息路由,虚拟化,中介,转换,日志记录,任务调度,负载平衡,失败了路由 ...
- django 自定用户系统 以及 Django Model 定义语法
http://www.tuicool.com/articles/jMzIr2 django使用自己的用户系统 http://www.jianshu.com/p/c10be59aad7a Django ...
- MyBatis笔记----MyBatis 入门经典的两个例子: XML 定义与注解定义
----致敬MyBatis官方开放文档让大家翻译,不用看书直接看文档就行了,mybatis的中文文档还需要完备的地方 简介 什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以 ...
随机推荐
- Linux服务器配置GPU版本的pytorch Torchvision TensorFlow
最近在Linux服务器上配置项目,项目需要使用GPU版本的pytorch和TensorFlow,而且该项目内会同时使用TensorFlow的GPU和CPU. 在服务器上装环境,如果重新开始,就需要下载 ...
- JavaBIO利用装饰器模式来组织和扩展接口
Stream接口,它直接负责字节流的传输. Reader/Writer接口,它本身不能读直接读写数据,而是以Stream接口为内部核心,在外围装饰增强,负责字符流的读写.字符和字节的转换过程必须指定字 ...
- 简单的试了试async和await处理异步的方式
今天无意中就来试了试,感觉这个新的方法还是非常行的通的,接下来我们上代码 这段代码想都不用想输出顺序肯定是//null null 233,当然出现这个问题还是因为它是同步,接下来我们就进行异步方式来处 ...
- docker - apt-get更换国内源解决Dockerfile构建速度过慢
背景 使用ubuntu镜像一般apt-get源地址都是在国外导致在构建时因为源地址问题导致下载速度极其得慢 在构建中应事先修改apt-get源地址来避免因下载速度过慢导致的构建缓慢问题 方案 在Doc ...
- Linux 文件(持续更新)
一.文件类型 Linux操作系统把所有内容(文件.图片.视频.设备)都当作文件看待.处理,即一切皆文件. Linux系统把所有文件分为七种类型: 文件类型 文件类型标识 说明 使用ls -l命令查看文 ...
- 安装Mailx到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:无 硬件版本:无 安装过程 1.配置网络 [root@localhost ~]# vi /etc ...
- 【剑指Offer】63、二叉搜索树的第k个结点
题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 题解一:DFS 借助栈实现 // 中序非递归 public ...
- private、public、this关键字
private关键字 概念:私有的,一种权限修饰符,用来修饰类的成员 特点:被修饰的成员只能在本类中访问 用法: - 1. private 数据类型 变量名: - 2. private 返回值类型 方 ...
- 数据库设计工具-powerdesigner
一.PowerDesigner导出SQL,注释为空时以name代替 操作步骤 1. 2. 3.将Value中的内容全部替换为如下 %:COLUMN% [%National%?national ]%DA ...
- c++多线程编程互斥锁初步
上一次讲述了多线程编程,但是由于线程是共享内存空间和资源的,这就导致:在使用多线程的时候,对于共享资源的控制要做的很好.先上程序: #include <iostream> #include ...