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

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

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

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

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

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

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

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

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

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

  5. wso2 esb_通过运行示例从WSO2 ESB开始

    wso2 esb 我最近加入了一个新任务,我们必须基于WSO2工具栈实施ESB解决方案. 尽管我熟悉ESB的大多数概念以及其他一些实现(例如Mule ESB ),但这是我第一次必须使用WSO2 ESB ...

  6. 邮件内容会留在服务器吗,outlook的邮件最长可以保存多久,去

    outlook的邮件最长可以保存多久,去年的邮件还可以找到吗?如何设置不自动删除过期的? 问题来自: 2020-01-01 0 / 200 提交回答 2021-07-30 关于 outlook的邮件最 ...

  7. java 邮件 内容_JAVA怎么获取邮件内容

    网上找了一份James+Javamail构建邮件服务教材,但关于打印该邮件的内容没细讲,直说了一句只要将message[i]对象中的邮件内容等信息读取出来就可以了,求大神指点下//初始化主机Strin ...

  8. 邮件内容被分析抛售,你的企业邮箱安全吗?

    2019独角兽企业重金招聘Python工程师标准>>> --"经常收到陌生团购网站的团购宣传邮件.推销电话甚至QQ.网银密码被盗-到底是谁出卖了我们的信息?" - ...

  9. php 使用postfix发邮件,PHP处理postfix邮件内容的方法

    本文实例讲述了PHP处理postfix邮件内容的方法.分享给大家供大家参考.具体如下: //从输入读取到所有的邮件内容 $email = ""; $fd = fopen(" ...

最新文章

  1. 当前不会命中断点.还没有为该文档加载任何符号解决
  2. anaconda安装及环境变量配置
  3. css:构建响应式网站
  4. boost::geometry::wkt用法的测试程序
  5. boost::geometry::partition用法的测试程序
  6. java中的类型擦除type erasure
  7. ttreeview 只展开一层节点_K8S工作节点的演变:由Docker到CRI-O
  8. 彻底搞懂单例模式如何安全的实现
  9. dateutils java_java中DateUtils时间工具类详解
  10. 如何用php开发oa系统,oa系统怎么使用
  11. 机房环境监控管理解决方案—温湿度、烟感、PM2.5、TVOC等监测
  12. zabbix 利用脚本发邮件(mail)
  13. mysql中文日期转换_mysql 日期转换
  14. 《Node.js开发指南》MicroBlog项目的问题汇总
  15. 星巴克——starbuck
  16. 修改CheckBox选择框、设置选择框颜色
  17. 自动生成带昵称的头像(仿照钉钉头像)
  18. 不能拖动CAD文件到CAD窗口打开,解决方案
  19. 光纤交换机 序列号_IBM B系列光纤交换机B24默认激活和license以及如何导入license...
  20. 通过颜色来生成一个纯色图片

热门文章

  1. P6688-可重集【字符串hash,线段树】
  2. P2638-安全系统【数论,组合数学】
  3. Codeforces Round #674 (Div. 3)
  4. Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题
  5. Oracle入门(二)之服务启动bat
  6. Java 8 HashMap键与Comparable接口
  7. 架构师必须掌握的各种编码:ASCII、ISO-8859-1、GB2312
  8. vue利用级联选择器实现全国省市区乡村五级菜单联动
  9. 异步任务---SpringBoot
  10. Mybatis框架的连接池配置