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.存储过程以 ...
随机推荐
- Android中使用AlarmManager设置闹钟
场景 设置闹钟 闹钟提醒 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建 ...
- ELK学习004:Elasticsearch常规操作
CRUD 在我们的项目中有日志是一个必不可少的东西,但是日志的检索是一个很麻烦的事情,如每天一个日志,要找到问题就得一个一个找,并不能做到检索功能,这还算好的,如果是分布式的,每个机器都得找一遍,这种 ...
- 展讯sprd_battery.c 充电驱动
sprd_battery.c 是充电驱动,这个是充电功能的核心内容,电量显示策略.温度检测策略.充电保护机制等功能在这里实现,功能实现与硬件细节剥离,调用通用接口实现逻辑控制: 1 sprdbat_p ...
- Android5.1 WebView遇坑笔记-Resources$NotFoundException
Bugly遇到异常 查找原因,分析发现崩溃发生在Android版本21和22上,在网上查找资料发现下面解决方案 使用自定义WebView替换原生自带WebView解决 package com.test ...
- 部署Nexus作为docker的私有仓库
目录 Docker搭建Nexus私有仓库... 1 一.安装部署... 1 1.安装... 2 2.访问网页端... 2 二.配置使用... 2 1.创建本地仓库... 2 2.docker配置... ...
- 破局AI落地难,数据标注行业需率先变革丨曼孚科技
2019年,国内人工智能领域的投融资热情大幅降低,相当数量的AI企业彻底消失在了历史的长河中,“人工智能寒潮已至”甚至成为行业年度热词. 与前几年创业与投资热情齐头并进的盛况相比,近段时间的AI行业 ...
- 【spring】spring源码阅读之xml读取、bean注入(BeanFactory)
前言 此源码其实是在4月中旬就看了,而且当初也写了一份word文档,但不打算直接把word发上来.还是跟着以前的笔记.跟踪代码边看边写吧. 其实当初看源码的理由很简单,1.才进新公司,比较有空闲.2. ...
- 你是个好人,但不是个好leader
午餐时间,我翻看朋友圈,浏览到一条朋友A的最新动态,她刚创业半年多的公司因为资金周转不灵.项目搁浅.合伙人撤资等多方面原因,最终倒闭了. 朋友A有着多年的名企工作经验,985大学毕业,在学校时是学霸, ...
- win10配置jdk环境变量
备注:这里以jdk-10.0.2_windows-x64_bin为例 1.jdk安装目录如下 2.右键“此电脑”-点击“属性”-点击“高级系统设置”-点击“环境变量”-选中“Path”-点击“编辑” ...
- Android_ExpandableListView
实现效果: 类似于QQ联系人列表 相关属性: android:childDivider:指定各组内子类表项之间的分隔条,图片不会完全显示, 分离子列表项的是一条直线 android:childIndi ...