wso2 esb_使用WSO2 ESB进行邮件内容过滤

wso2 esb

内容过滤器 每个集成设计师或开发人员都应该熟悉Gregor Hohpe和Bobby Woolf所描述的企业集成模式(EIP) 。 模式之一是“内容消息过滤器” (不要与消息过滤器模式混淆)。
使用不同的Mediator在WSO2中有多种方法可以实现此目的。 一种方法是使用XSLT介体 ,您可以在其中简单地使用XSLT进行过滤。 另一个(根据名称不那么明显)是Enrich Mediator 。

这是一个如何使用Enrich Mediator的示例。 想象一下原始消息是:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tmp="http://www.pascalalma.net/order"><soapenv:Header/><soapenv:Body><tmp:message><tmp:document><tmp:order><tmp:id>123</tmp:id></tmp:order></tmp:document></tmp:message></soapenv:Body>
</soapenv:Envelope>

我们真正想要的是一条仅以“ order”元素为有效载荷的Soap消息。 我们可以使用具有以下配置的Enrich介体来完成此操作:

<enrich xmlns:tmp="http://www.pascalalma.net/order"><source clone="false" type="custom" xpath="//tmp:document/*" /><target action="replace" type="body" />
</enrich>

因此,通过这种配置,我们告诉中介者应将'document'元素的内容作为源,并将此内容放入传入的SOAP消息的正文中。

当您选择使用XSLT介体时,这里有一个示例XSLT,可用于从XML文档中删除某些元素。 您可以在以下XML消息上使用它:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tmp="http://www.pascalalma.net/order"><soapenv:Header/><soapenv:Body><tmp:message><tmp:document><tmp:order><tmp:id>123</tmp:id><tmp:type>backorder</tmp:type><tmp:status>open</tmp:status><tmp:description>open</tmp:description></tmp:order></tmp:document></tmp:message></soapenv:Body>
</soapenv:Envelope>

如果我们想要这个相同的XML文档,但是没有元素'tmp:type'和'tmp:description',我们可以这样定义XSLT介体:

<xslt key="xslt/remove-elements-v1.xslt" description="remove unwanted elements"><property name="removeElementsNamed" value="type,description" />
</xslt>

使这项工作有效的XSLT代码(我在stackoverflow网站上找到了它):

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output omit-xml-declaration="no" indent="yes" encoding="UTF-8"/><xsl:strip-space elements="*"/><xsl:param name="removeElementsNamed" /><xsl:template match="node()|@*"><xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy></xsl:template><xsl:template match="*[local-name()=tokenize($removeElementsNamed,'[\|, \t]')]"/>
</xsl:stylesheet>

请注意,此XSLT不会考虑名称空间,只会删除所有本地名称与提供的名称匹配的元素!

翻译自: https://www.javacodegeeks.com/2015/03/message-content-filtering-with-wso2-esb.html

wso2 esb

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

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

相关文章

c语言中的/和%表示什么意思

点击上方蓝字关注我&#xff0c;了解更多咨询%代表求余运算符号&#xff1b;/代表除法运算符号。1、求余是一种数学计算方法&#xff0c;指一个数除以另一个数&#xff0c;不够除的部分就是余数&#xff0c;就是求余的结果。一个数除以另一个数&#xff0c;要是比另一个数小的话…

vue 脚手架测试环境_关于单元测试脚手架的几点思考

vue 脚手架测试环境莱昂&#xff1a;Luc Besson的专业人士 当我开始通过创建相同的对象并准备用于运行测试的数据来重复进行单元测试方法时&#xff0c;我对设计感到失望。 带有大量代码重复的长测试方法看起来并不正确。 为了简化和缩短它们&#xff0c;基本上有两个选择&…

Lightly:新一代的C语言IDE

点击上方蓝字关注我&#xff0c;了解更多咨询C语言最初是作为Unix系统的开发工具而发明&#xff0c;现如今已成为最广泛使用、最流行的编程语言之一。它具有如下几个特点&#xff1a;&#xff08;1&#xff09;低级语言它是一种建立在底层构建逻辑的机器语言&#xff0c;可以直…

大篆汉字对照表_篆书转换器软件下载(篆体字转换汉字对照表)

笔顺篆书的笔顺和汉字笔顺规则基本相仿&#xff0c;如先横后竖、从上到下、从左到右等&#xff0c;这些对初学者来说是不成问题的。重要的是和汉字不同的笔顺&#xff0c;而这些不同之处正是篆书笔顺的特点&#xff0c;掌握了这些特点&#xff0c;就能把握好篆书的结体&#xf…

java 8 lambda_异常作弊– Java 8 Lambdas

java 8 lambda异常作弊– Java 8 Lambdas 撇开关于Checked vs Runtime异常的宗教辩论&#xff0c;有时由于库的构造不佳&#xff0c;处理Checked示例会使您发疯。 考虑一下您可能要编写的以下代码片段&#xff1a; public void createTempFileForKey(String key) {Map<Str…

c语言程序的基本单位是什么呢?

点击上方蓝字关注我&#xff0c;了解更多咨询随着科技的不断发展&#xff0c;电脑等终端设备已经成为我们生活中不可或缺的工具&#xff0c;而希望学习程序设计语言的朋友也越来越多&#xff0c;那么c语言的基本单位是什么呢&#xff1f;其实&#xff0c;c语言的基本单位是函数…

困难时拉你一把的图片_人生感悟语录:最不能忘记的,是在你困难时拉你一把的人...

1、人&#xff0c;最不能忘记的&#xff0c;是在你困难时拉你一把的人;最不能结交的&#xff0c;是在你失败时藐视你的人;最不能相信的&#xff0c;是在你成功时吹捧你的人;最不能抛弃的&#xff0c;是和你同创业共患难的人;最不能爱的&#xff0c;是不看重你人格的人。2、人生…

关于C语言中的memset()函数你了解多少

点击上方蓝字关注我&#xff0c;了解更多咨询1.函数原型及功能memset()函数原型为&#xff1a;函数功能&#xff1a;将_Dst所指区域的前size_t个字节均初始化为_val&#xff0c;调用时需要引用string.h头文件memset()函数多用于数组和结构体这种占用内存比较大的数据结构的初始…

如何判断无法到达目标的拼图_拼图项目的动机和目标

如何判断无法到达目标的拼图几周前&#xff0c;我写了一篇关于Jigsaw项目可能如何破坏现有代码的文章 。 那么我们得到什么回报呢&#xff1f; 让我们看一下项目解决的痛点及其在Java 9中解决问题的目标。 系列 这篇文章是正在进行的有关拼图项目系列的一部分。 按照推荐的顺序…

deepin下载python_深度操作系统中怎样下载python?

需要以下4步&#xff1a;1、下载 2、获取权限 3、安装 4 、运行测试注意&#xff1a;千万不要卸载或者强制卸载原来自带的python&#xff0c;具体原因请看度娘的介绍&#xff01;1、下载Python3.7.6&#xff1a;到官网下载https://www.python.org&#xff0c;在downloads中可以…

javafx显示image_JavaFX技巧20:有很多要显示的吗? 使用画布!

javafx显示imageJavaFX应用程序似乎有两种&#xff1a;第一种使用带有节点和CSS样式的场景图&#xff0c;第二种使用单个画布。 但是&#xff0c;将这两种方法混合使用是完全合法的。 尤其是当您的应用程序必须显示大量详细信息时&#xff0c;您很容易最终创建成千上万个节点。…

c语言中|的含义

点击上方蓝字关注我&#xff0c;了解更多咨询||在c语言中的意思是逻辑OR&#xff08;或&#xff09;运算&#xff0c;运算符两端有一个变量为真&#xff0c;则结果为真。比如a||b表示a和b做逻辑OR&#xff08;或&#xff09;运算&#xff0c;只要有任何一个变量为“真”&#x…

30 校准_校准or质控,傻傻分不清楚

今天发个福利&#xff0c;应kkz的要求&#xff0c;聊一聊我对IVD校准和质控的个人理解。非专业科普文&#xff0c;欢迎交流&#xff5e;先来讲个小故事&#xff1a;我小的时候&#xff0c;家里用的挂钟每隔一段时间就要调准一下。那个时候没有网络&#xff0c;爸妈是对着中央新…

jax-ws 生成soap_在Spring中记录JAX-WS SOAP消息

jax-ws 生成soap每当在Spring中使用JAX-WS时&#xff0c;您可能都希望记录传入和传出的SOAP消息-如果仅用于开发过程中的调试。 因此&#xff0c;第一件事就是增加日志级别&#xff0c;对吗&#xff1f; 不幸的是&#xff0c;这将无效。 您将要做的是利用javax.xml.ws.handler.…

C语言查找数组最大最小值

点击上方蓝字关注我&#xff0c;了解更多咨询C语言查询最大最小值的实现思路&#xff1a;定一个变量存储最大值或最小值&#xff0c;变量的初始值取自数组的第一个元素&#xff0c;然后遍历数组&#xff0c;如果遍历到的元素比变量的值大&#xff0c;就把值赋给变量&#xff0c…

c语言中%s的含义你知道吗?

点击上方蓝字关注我&#xff0c;了解更多咨询%s在C语言中代表字符串型格式符&#xff0c;一般用在printf、sprintf等字符串格式化函数中&#xff0c;用于决定格式化参数的数据类型。整数类型是%d,单精度浮点类型&#xff0c;也就是小数是%f,字符类型%c%c&#xff0c;%s这些代表…

mysql 1千万 like优化_MYSQL千万级数据量的优化方法积累

1、分库分表很明显&#xff0c;一个主表(也就是很重要的表&#xff0c;例如用户表)无限制的增长势必严重影响性能&#xff0c;分库与分表是一个很不错的解决途径&#xff0c;也就是性能优化途径&#xff0c;现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之…

1.0jpa 2.0_JPA 2.1如何成为新的EJB 2.0

1.0jpa 2.0美丽在于情人眼中。 “轻松”也是如此&#xff1a; 了解有关SQL结果集映射的更多信息&#xff0c;并轻松处理本机查询结果&#xff1a; http : //t.co/WH4BTlClIP #JPA #Java #JavaEE — Thorben Janssen&#xff08; thjanssen123&#xff09; 2015年4月15日 Tho…

C语言while循环要点你会吗

点击上方蓝字关注我&#xff0c;了解更多咨询while语句在使用过程需要注意几个要点&#xff1a;一、无限循环先来看看以下的代码示例int n 0;while(n<3)printf("n %d", n);n;执行代码后&#xff0c;循环输出n0。在上述代码中&#xff0c;虽然有n自增&#xff0c…

mysql performance tuning_MySQL Performance tuning

1.表级锁状态mysql> show status like table%;---------------------------------------| Variable_name | Value |---------------------------------------| Table_locks_immediate | 139306577 || Table_locks_waited | 0 || Tabl…