- 浏览: 2551882 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
mule2.2.x架构(五)示例学习errorHandle
所有的示例文档
http://www.mulesoft.org/display/MULE2INTRO/Examples
本示例参考地址
http://www.mulesoft.org/display/MULE2INTRO/Error+Handler+Example
5.1 从目录扫描文件输出
配置文件error-config.xml,其中很多地方做了些调整
<!-- spring管理的bean -->
<spring:bean id="errorManager"
class="com.sillycat.easymule.errorhandler.services.ErrorManager">
<spring:property name="handlers">
<spring:list>
<spring:ref local="fatalHandler" />
<spring:ref local="defaultHandler" />
<spring:ref local="businessHandler" />
</spring:list>
</spring:property>
</spring:bean>
<!-- 默认异常处理,输出到文件 -->
<spring:bean id="defaultHandler"
class="com.sillycat.easymule.errorhandler.handlers.DefaultHandler">
<spring:property name="endpointName" value="ExceptionFileWriter" />
<spring:property name="errorManager">
<spring:ref local="errorManager" />
</spring:property>
</spring:bean>
<!-- 严重错误异常,输出到邮件 -->
<spring:bean id="fatalHandler"
class="com.sillycat.easymule.errorhandler.handlers.FatalHandler">
<spring:property name="endpointName" value="ExceptionEmailer" />
<spring:property name="errorManager">
<spring:ref local="errorManager" />
</spring:property>
</spring:bean>
<!-- 业务异常处理,输出到队列 -->
<spring:bean id="businessHandler"
class="com.sillycat.easymule.errorhandler.handlers.BusinessHandler">
<spring:property name="endpointName" value="ExceptionQueue" />
<spring:property name="errorManager">
<spring:ref local="errorManager" />
</spring:property>
</spring:bean>
<!-- 读取配置properties -->
<context:property-placeholder location="errorhandler/email.properties" />
<jms:activemq-connector name="JMSConnector" />
<!-- 文件链接 -->
<file:connector name="FileConnector" pollingFrequency="1000"
moveToDirectory="${file.out}" outputPattern="[DATE].xml" />
<email:string-to-email-transformer
name="StringToEmailMessage" />
<jms:object-to-jmsmessage-transformer
name="ObjectToJMSMessage" />
<jms:jmsmessage-to-object-transformer
name="JMSMessageToObject" />
<xm:xml-to-object-transformer name="XMLToExceptionBean"
returnClass="com.sillycat.easymule.errorhandler.model.ExceptionBean" />
<xm:object-to-xml-transformer name="ExceptionBeanToXML"
returnClass="java.lang.String" />
<custom-transformer name="ExceptionBeanToErrorMessage"
class="com.sillycat.easymule.errorhandler.transformer.ExceptionBeanToErrorMessage"
returnClass="com.sillycat.easymule.errorhandler.model.ErrorMessage" />
<custom-transformer name="ErrorMessageToException"
class="com.sillycat.easymule.errorhandler.transformer.ErrorMessageToException"
returnClass="java.lang.Throwable" />
<custom-transformer name="ErrorMessageToExceptionBean"
class="com.sillycat.easymule.errorhandler.transformer.ErrorMessageToExceptionBean"
returnClass="com.sillycat.easymule.errorhandler.model.ExceptionBean" />
<model name="errorhandler-test">
<service name="Error Manager">
<inbound>
<!-- 读入properties中配置的file.in目录下的*.xml文件 -->
<inbound-endpoint address="${file.in}"
transformer-refs="XMLToExceptionBean ExceptionBeanToErrorMessage">
<file:filename-wildcard-filter
pattern="*.xml" />
</inbound-endpoint>
</inbound>
<!-- 调用spring的bean处理,默认调用了ErrorManager里面的onException方法,这里还没有搞清楚?有点迷惑 -->
<pooled-component>
<prototype-object
class="com.sillycat.easymule.errorhandler.services.ErrorManager">
<properties>
<spring:entry key="handlers">
<spring:list>
<spring:ref local="fatalHandler" />
<spring:ref local="defaultHandler" />
<spring:ref local="businessHandler" />
</spring:list>
</spring:entry>
</properties>
</prototype-object>
</pooled-component>
<outbound>
<filtering-router>
<!--默认错误输出到文件 -->
<file:outbound-endpoint path="test-data/exceptions"
outputPattern="Exception-[UUID].xml" transformer-refs="ErrorMessageToExceptionBean ExceptionBeanToXML" />
<expression-filter evaluator="groovy"
expression="payload.throwable instanceof org.mule.api.DefaultMuleException" />
</filtering-router>
<filtering-router>
<!-- 输出到邮箱 -->
<smtp:outbound-endpoint user="${smtp.username}"
password="${smtp.password}" host="${smtp.host}" port="${smtp.port}"
to="${email.toAddress}" from="${email.fromAddress}" subject="${email.subject}"
transformer-refs="ErrorMessageToExceptionBean ExceptionBeanToXML StringToEmailMessage" />
<expression-filter evaluator="groovy"
expression="payload.throwable instanceof org.mule.api.lifecycle.FatalException" />
</filtering-router>
<!-- 输出到jms队列 -->
<filtering-router>
<outbound-endpoint address="jms://exception.queue"
transformer-refs="ErrorMessageToExceptionBean ExceptionBeanToXML ObjectToJMSMessage" />
<expression-filter evaluator="groovy"
expression="payload.throwable instanceof com.sillycat.easymule.errorhandler.exceptions.BusinessException" />
</filtering-router>
<custom-catch-all-strategy
class="org.mule.routing.LoggingCatchAllStrategy" />
</outbound>
</service>
<service name="Business Error Manager">
<inbound>
<!-- 接受jms队列 -->
<inbound-endpoint address="jms://exception.queue"
transformer-refs="JMSMessageToObject XMLToExceptionBean ExceptionBeanToErrorMessage" />
</inbound>
<!-- 处理队列中的消息 -->
<component class="com.sillycat.easymule.errorhandler.services.BusinessErrorManager" />
</service>
</model>
对于component和pooled-component还有待认识。
这个示例中有spring bean的配置,同时有邮箱smtp协议,jms等的调用。
所有的示例文档
http://www.mulesoft.org/display/MULE2INTRO/Examples
本示例参考地址
http://www.mulesoft.org/display/MULE2INTRO/Error+Handler+Example
5.1 从目录扫描文件输出
配置文件error-config.xml,其中很多地方做了些调整
<!-- spring管理的bean -->
<spring:bean id="errorManager"
class="com.sillycat.easymule.errorhandler.services.ErrorManager">
<spring:property name="handlers">
<spring:list>
<spring:ref local="fatalHandler" />
<spring:ref local="defaultHandler" />
<spring:ref local="businessHandler" />
</spring:list>
</spring:property>
</spring:bean>
<!-- 默认异常处理,输出到文件 -->
<spring:bean id="defaultHandler"
class="com.sillycat.easymule.errorhandler.handlers.DefaultHandler">
<spring:property name="endpointName" value="ExceptionFileWriter" />
<spring:property name="errorManager">
<spring:ref local="errorManager" />
</spring:property>
</spring:bean>
<!-- 严重错误异常,输出到邮件 -->
<spring:bean id="fatalHandler"
class="com.sillycat.easymule.errorhandler.handlers.FatalHandler">
<spring:property name="endpointName" value="ExceptionEmailer" />
<spring:property name="errorManager">
<spring:ref local="errorManager" />
</spring:property>
</spring:bean>
<!-- 业务异常处理,输出到队列 -->
<spring:bean id="businessHandler"
class="com.sillycat.easymule.errorhandler.handlers.BusinessHandler">
<spring:property name="endpointName" value="ExceptionQueue" />
<spring:property name="errorManager">
<spring:ref local="errorManager" />
</spring:property>
</spring:bean>
<!-- 读取配置properties -->
<context:property-placeholder location="errorhandler/email.properties" />
<jms:activemq-connector name="JMSConnector" />
<!-- 文件链接 -->
<file:connector name="FileConnector" pollingFrequency="1000"
moveToDirectory="${file.out}" outputPattern="[DATE].xml" />
<email:string-to-email-transformer
name="StringToEmailMessage" />
<jms:object-to-jmsmessage-transformer
name="ObjectToJMSMessage" />
<jms:jmsmessage-to-object-transformer
name="JMSMessageToObject" />
<xm:xml-to-object-transformer name="XMLToExceptionBean"
returnClass="com.sillycat.easymule.errorhandler.model.ExceptionBean" />
<xm:object-to-xml-transformer name="ExceptionBeanToXML"
returnClass="java.lang.String" />
<custom-transformer name="ExceptionBeanToErrorMessage"
class="com.sillycat.easymule.errorhandler.transformer.ExceptionBeanToErrorMessage"
returnClass="com.sillycat.easymule.errorhandler.model.ErrorMessage" />
<custom-transformer name="ErrorMessageToException"
class="com.sillycat.easymule.errorhandler.transformer.ErrorMessageToException"
returnClass="java.lang.Throwable" />
<custom-transformer name="ErrorMessageToExceptionBean"
class="com.sillycat.easymule.errorhandler.transformer.ErrorMessageToExceptionBean"
returnClass="com.sillycat.easymule.errorhandler.model.ExceptionBean" />
<model name="errorhandler-test">
<service name="Error Manager">
<inbound>
<!-- 读入properties中配置的file.in目录下的*.xml文件 -->
<inbound-endpoint address="${file.in}"
transformer-refs="XMLToExceptionBean ExceptionBeanToErrorMessage">
<file:filename-wildcard-filter
pattern="*.xml" />
</inbound-endpoint>
</inbound>
<!-- 调用spring的bean处理,默认调用了ErrorManager里面的onException方法,这里还没有搞清楚?有点迷惑 -->
<pooled-component>
<prototype-object
class="com.sillycat.easymule.errorhandler.services.ErrorManager">
<properties>
<spring:entry key="handlers">
<spring:list>
<spring:ref local="fatalHandler" />
<spring:ref local="defaultHandler" />
<spring:ref local="businessHandler" />
</spring:list>
</spring:entry>
</properties>
</prototype-object>
</pooled-component>
<outbound>
<filtering-router>
<!--默认错误输出到文件 -->
<file:outbound-endpoint path="test-data/exceptions"
outputPattern="Exception-[UUID].xml" transformer-refs="ErrorMessageToExceptionBean ExceptionBeanToXML" />
<expression-filter evaluator="groovy"
expression="payload.throwable instanceof org.mule.api.DefaultMuleException" />
</filtering-router>
<filtering-router>
<!-- 输出到邮箱 -->
<smtp:outbound-endpoint user="${smtp.username}"
password="${smtp.password}" host="${smtp.host}" port="${smtp.port}"
to="${email.toAddress}" from="${email.fromAddress}" subject="${email.subject}"
transformer-refs="ErrorMessageToExceptionBean ExceptionBeanToXML StringToEmailMessage" />
<expression-filter evaluator="groovy"
expression="payload.throwable instanceof org.mule.api.lifecycle.FatalException" />
</filtering-router>
<!-- 输出到jms队列 -->
<filtering-router>
<outbound-endpoint address="jms://exception.queue"
transformer-refs="ErrorMessageToExceptionBean ExceptionBeanToXML ObjectToJMSMessage" />
<expression-filter evaluator="groovy"
expression="payload.throwable instanceof com.sillycat.easymule.errorhandler.exceptions.BusinessException" />
</filtering-router>
<custom-catch-all-strategy
class="org.mule.routing.LoggingCatchAllStrategy" />
</outbound>
</service>
<service name="Business Error Manager">
<inbound>
<!-- 接受jms队列 -->
<inbound-endpoint address="jms://exception.queue"
transformer-refs="JMSMessageToObject XMLToExceptionBean ExceptionBeanToErrorMessage" />
</inbound>
<!-- 处理队列中的消息 -->
<component class="com.sillycat.easymule.errorhandler.services.BusinessErrorManager" />
</service>
</model>
对于component和pooled-component还有待认识。
这个示例中有spring bean的配置,同时有邮箱smtp协议,jms等的调用。
发表评论
-
SOAP AXIS2 with HTTPS
2011-11-24 15:28 4247SOAP AXIS2 with HTTPS 1. sampl ... -
xfire后续问题补充
2010-01-06 14:34 2630xfire后续问题补充 问题一:xfire的方法中,需要知道 ... -
AXIS实现WebService
2010-01-06 11:51 3958AXIS实现WebService webservice里面对 ... -
xfire的webservice安全机制之签名
2010-01-05 23:31 1379xfire的webservice安全机制之签名 服务端配置修 ... -
xfire的webservice安全机制之签名
2010-01-05 23:29 1613xfire的webservice安全机制之签名 服务端配置修 ... -
xfire的webservice安全机制之用户校验
2010-01-05 23:29 2110xfire的webservice安全机制之用户校验 xfir ... -
xfire的webservice安全机制之加密(三)
2010-01-05 23:29 1272如何用KEYTOOL工具生成私匙和公匙 1、通过别名和密码创 ... -
xfire的webservice安全机制之加密(二)
2010-01-05 23:28 2815xfire的webservice安全机制 下面是客户端调用的 ... -
xfire的webservice安全机制之加密(一)
2010-01-05 23:28 2892xfire的webservice安全机制 在原来使用xfir ... -
spring下的webservice之xfire
2010-01-05 23:25 2036http://xfire.codehaus.org/ xfi ... -
Xfire在Weblogic10.3上发布的问题
2010-01-05 10:37 6324Xfire在Weblogic10.3上发布的问题 最近项目的 ... -
mule2.2.x架构(八)部署到WEB项目
2010-01-05 10:36 1965mule2.2.x架构(八)部署到WEB项目 所有的示例文档 ... -
xfire的Client的WSDL调用
2010-01-05 10:36 3156xfire的Client的WSDL调用 也只是想测试一下,如 ... -
mule2.2.x架构(七)示例学习LoanBroker
2010-01-05 10:36 1709mule2.2.x架构(七)示例学习LoanBroker 所 ... -
xfire的client的JAVA调用方式
2010-01-05 10:35 3553xfire的client的JAVA调用方式 平时我们调用xf ... -
mule2.2.x架构(六)示例学习scripting
2010-01-05 10:35 1474mule2.2.x架构(六)示例学习scripting 所有 ... -
mule2.2.x架构(四)示例学习StockQuote
2010-01-05 10:34 1872mule2.2.x架构(四)示例学习StockQuote 所 ... -
mule2.2.x架构(三)示例学习hello
2010-01-05 10:34 1874mule2.2.x架构(三)示例学习hello 所有的示例文 ... -
mule2.2.x架构(二)示例学习echo
2010-01-05 10:33 1774mule2.2.x架构(二)示例学习echo 所有的示例文档 ... -
mule2.2.x架构(一)环境搭建
2010-01-05 10:31 2278mule2.2.x架构(一)环境搭建 MULE首页 http ...
相关推荐
《Mule2.2 BookStore例子学习》 Mule2.2是一款强大的企业级集成平台,主要用于构建应用程序之间的数据和流程集成。在这个BookStore的例子中,我们将深入理解Mule ESB(Enterprise Service Bus)的核心概念和工作...
### Mule 2.x Getting Started Guide 知识点解析 #### 一、Mule是什么? Mule 是一款基于 Java 的轻量级消息框架,旨在帮助开发者快速、便捷地连接各种应用程序,实现它们之间的数据交换。它支持多种技术栈,如 ...
GomPlayer类似于KMplayer,同样也是一款来自韩国播放器,界面精美、功能全面。多媒体播放器GOMPlayer... 以‘查找解码’功能来支持所有视频的播放,在BT或e-mule等P2P网站中下载的影片会经常不能播放,GOM Player以独
Mule讲解.docxMule讲解.docx
包含http、cxf、vm、sap、activeMq、ftp、file、poll、Smtp、attachment、melExpression、Java、template节点的使用示例等。
2) 支持BT或e-mule等P2P站点中接收到损坏的文件, 因中断页传送完成的文件, 索引损坏的AVI文件的播放. 3) 想截取的视频画面可以储存为图像 (JPG, BMP)文件, 还可以通过连续截图取功能来实现把影片的场景以帧为单位, ...
弹性APM Mule3代理介绍此插件允许使用Elastic APM监视Mule 3.x组件的应用程序性能。 它提供了一种非侵入性的方式来度量和基准化Mule中的各个流程和步骤,并添加了对Mule组件的应用程序性能监控,以与日志,指标和...
然而,Mule的内部API并未基于JBI标准,而是拥有自己独特的架构设计,这为开发人员提供了更多的自由度和创新空间。 相比之下,ServiceMix的核心在于其JBI基础。作为一款遵循JBI标准的集成平台,ServiceMix旨在提供一...
【Mule Web Service 示例】 Mule ESB(Enterprise Service Bus)是一种强大的集成平台,它允许开发者轻松地构建和部署分布式应用程序。在这个示例中,我们将深入探讨如何使用Mule来发布Web服务,这是一种允许不同...
在“EIP经典案例ESB实践之Mule实现.doc”文档中,你将深入了解到如何使用Mule ESB来实施Load Broker方案,包括具体的配置步骤、示例代码以及最佳实践。通过学习和实践,你可以掌握如何利用Mule ESB优化企业的服务...
五、Mule 的整体结构 Mule 的整体结构包括以下几个部分: * Model:表示托管各个服务的运行时环境。 * Service:是一个独立的服务单元,提供了具体的业务逻辑。 * Transport:是一种消息传递机制,用于传递消息。...
《Mule ESB实战:基于mule-2.2.1-src的开发示例解析》 Mule ESB,作为一款强大的企业服务总线(Enterprise Service Bus),在集成和连接不同系统方面展现了卓越的能力。本篇文章将围绕"mule_examples.rar_mule_mule...
附带的源码是书中示例的实现,读者可以下载并跟随书中步骤操作,这将极大地增强学习体验,加深对Mule ESB工作原理的理解。源码的分析和实践将帮助读者掌握实际开发中的技巧和最佳实践。 Mule ESB的强大之处在于其...
The book closes with a set of chapterson the nuts and bolts of working with Mule. Readers can take Mule farther bylearning techniques for testing, performance tuning, BPM orchestration, andeven a ...
【企业服务总线(ESB)】是现代企业IT架构中的关键组成部分,它解决了企业内部“信息孤岛”问题,实现了系统间的高效集成。ESB的出现源于企业对信息共享、系统互操作性和软件重用的迫切需求。随着业务规模的扩大和...
本学习笔记将帮助初学者理解Mule的基本原理、架构、核心概念以及如何开始使用Mule进行开发。 1. **Mule原理** Mule的核心在于服务导向的集成(SOI),其设计理念是通过灵活、可扩展的方式连接不同应用,促进数据的...
mule 是java 实现ESB 的开源工程, 让你实现牛X的企业总线, 第2版的事mule in action....