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.存储过程以 ...
随机推荐
- webpack打包进行丑化压缩遇到(TypeError Cannot read property 'compilation' of undefined)问题
今天再重新配置老项目node打包环境的时候遇到了一个问题. 在打包的时候报: TypeError: Cannot read property 'compilation' of undefined 错误 ...
- JSOI部分题解
JSOI部分题解 JSOI2018 战争 问题转化为给定你两个凸包\(\mathbb S,\mathbb T\),每次独立的询问将\(\mathbb T\)中的每个点移动一个向量,问\(\mathbb ...
- 木兰国产编程语言 Mulan--附带下载地址
我国自主研发的 编程语言:木兰. 中国新闻网 : http://www.cas.cn/cm/202001/t20200116_4731821.shtml 说明介绍 百度一番后,发现没有下载地址,没有官 ...
- vue添加swiper的正确方式亲测---切图网
在vue项目中,我们在做图片轮播的方式和传统切图不同,传统切图中我们一般采用非常强大的swiper来完成,而在vue中一般依赖vue-awesome-swiper组件来完成(vue-awesome-s ...
- HTML概念、语法及常用基础标签
HTML基础语法 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Docker Compose 启动mysql,redis,rabbitmq
这里使用的centos7,首先切换到root. sudo -s 首先去设置下载镜像,否则下载这三个东西要很久,而且可能失败. vim /etc/docker/daemon.json 内容如下: { & ...
- Case Study - 用户复购行为预测
Problem 对于商家来说提前识别回头客是一件集中资源提高新品销售量的头等大事,各大商家为了吸引顾客的二次购买都会实行各种像是促销.优惠券.折扣之类的策略.按理说越了解客户,越知道客户的喜好,越能精 ...
- ACM常用STL容器
// STL(标准模板库),由三大部分组成:容器,算法,迭代器 // STL六大组件:container(容器),algorthm(算法),iterator(迭代器) // function obje ...
- 【spring】(填坑)sql注入攻击 - 持久层参数化
结果 填坑失败,并没有看懂是如何检测sql攻击的. 只能说的是: 建议都使用参数化传递sql语句参数.(所以,用hibernate.mybatis等框架的真不用太担心sql攻击问题.) 前言 本文 ...
- select count(1)和select count(*)的区别
select count(1) from 表a //查询时会对常数列进行统计行数select count(*) from 表a //查询时会找表a中最短的列进行统计行数 因为使用count(*)查询会 ...