wso2

每个集成架构师或开发人员都应该熟悉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

wso2_使用WSO2 ESB进行邮件内容过滤相关推荐

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

    wso2 esb 每个集成设计师或开发人员都应该熟悉Gregor Hohpe和Bobby Woolf所描述的企业集成模式(EIP) . 模式之一是"内容消息过滤器" (不要与消息过 ...

  2. 使用WSO2 ESB进行邮件内容过滤

    每个集成架构师或开发人员都应该熟悉Gregor Hohpe和Bobby Woolf所描述的企业集成模式(EIP) . 模式之一是"内容消息过滤器" (不要与消息过滤器模式混淆). ...

  3. 邮件服务器过滤,Winmail 邮件服务器软件

    目前由于垃圾邮件的泛滥,绝大多数邮箱每天都会收到大量的垃圾邮件,深受垃圾邮件骚扰.如何有效的防止垃圾邮件已经成了摆在当前邮件系统面前的最为严峻的问题.下面就 winmail 如何来防止垃圾邮件作几点归 ...

  4. WSO2 ESB(4)

    WSO2的企业服务总线(ESB)的用户指南 用户指南介绍了如何配置WSO2 ESB使用基于Web的管理控制台. WSO2的管理控制台已经过测试的Mozilla Firefox2.0,3.0和Inter ...

  5. wso2 esb_使用WSO2 ESB构建制造服务总线(MSB)

    wso2 esb 在进入本主题之前,我想介绍一些制造业中常用的术语. 制造执行系统(MES)一词是AMR Research在1990年提出的,从先进的制造计算机信息系统的发展到现在,MES概念已经发展 ...

  6. 使用WSO2 ESB构建制造服务总线(MSB)

    在开始讨论本主题之前,我想介绍一些制造业中常用的术语. 术语制造执行系统(MES)由AMR Research于1990年提出,从先进的制造计算机信息系统的发展,MES概念已经发展了近三十年. 以下是制 ...

  7. python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)...

    简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下, ...

  8. python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上

    简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下, ...

  9. python 邮件_Python发送邮件(常见四种邮件内容)

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...

最新文章

  1. iOS编码:如何创建gbk编码
  2. 【JAVA笔记——道】对象生命周期详解
  3. 第一年的要求 工程系的研究生
  4. alibaba cloud is expensive
  5. tableview动态修改和删除_Ubuntu加载动态库失败的解决方案
  6. Java学习四步曲,助你成长!
  7. 实操教程丨如何将一个k3s集群集成到Gitlab项目中
  8. (软件工程复习核心重点)第三章需求分析-第五节:验证软件需求
  9. ai面试的优缺点_面试也能开“外挂”?领英AI做了什么
  10. WIN7系统一个盘分多个盘的方法
  11. jersey tomcat MySQL_IDEA+Jersey+Tomcat搭建RESTful API
  12. 在virtualbox安装xp系统及安装oracle
  13. [11]ESP32+三轴磁罗盘HMC5883L移植与调试
  14. 【2019年04月09日】A股净资产收益率ROE最高排名
  15. 股票指标php源码,【图】成功率98.7%超高成功率指标(源码 有图 无未来)_炒股,炒股公式,股票论坛,炒股软件,股票指标_指标公式分享交流论坛_理想论坛 - 股票论坛...
  16. 索尼爱立信滑盖机java_可爱Walkman滑盖机 索尼爱立信W100i评测
  17. Ardunio开发实例-VCNL4010 接近度和环境光传感器
  18. 【Matlab】修改图片dpi方法总结
  19. Fatal error: Cannot use 'Object' as class name as it is reserved in xxx/Object.php on line 77
  20. php 网站计数器,php网站计数器

热门文章

  1. 一个简易的loading加载图
  2. 【剑指offer】丑数
  3. postgreSQL的应用
  4. linux 提权一文通
  5. cve-2017–10271 XMLDecoder 反序列化漏洞 原理分析
  6. apache solr velocity 注入远程命令执行漏洞 (cve-2019-17558)
  7. rtp 多媒体流同步控制 实时传输协议 简介
  8. docker 删除镜像报错 image is referenced in multiple repositories
  9. easyui datagrid onLoadSuccess方法 正确使用
  10. VMware虚拟机NAT模式的具体配置