mule in action翻译14 : 3.2 使用文件传输
读写文件是应用程序获取或写出数据最常用的方式。
本节学习如何使用mule的文件传输实现读、写、移动、删除的操作。
配置属性 本书中你会看到如下的属性配置:
host="${imap.host}"
这些属性占位符是为了避免硬编码。属性文件的位置的配置如下:
<context:property-placeholder location="/mule.properties"/>
文件传输的一些配置属性如表 3.1 所示。
一些Prancing Donkey公司的员工还在使用Excel记录支出。这对公司的公司的开发人员是个 特别沮丧的事情,他们本想享受Arnor Accounting REST风格 API带来便利。但更糟糕的是, 员工一直是把报销单电邮到会计部门。 会计部门人员则疲于过滤邮件中的报销单附件, 找到这些报销单后还要放到一个网络共享目录。此外还有一个问题,报销单命名并不统一。
我们来看一个流,它可以轮询接受报销单的文件夹,并会把不符合命名规范的报销单复制到另外
一个文件夹。见图 3.5
Listing 3.1 Using the file transport to move files from one directory to another
<flow name="copyExpenseReports"> <--!注释1 每分钟一次轮询文件夹 ./data/expenses/1/in 查找新文件--> <file:inbound-endpoint path="./data/expenses/1/in" pollingFrequency="60000"> <--!注释2 只接受后缀是 .xls扩展名的文件--> <file:filename-regex-filter pattern=".*xls$" caseSensitive="false"/> </file:inbound-endpoint> <--!注释3 把文件写到/data/expenses/out 把新文件命名为时间戳加上原文件名--> <file:outbound-endpoint path="./data/expenses/out" outputPattern="EXPENSE-REPORT- #[org.mule.util.DateUtils.getTimeStamp('dd-MM-yy_HH-mm-ss.SSS')] -#[inboundProperties['originalFilename']]"/> </flow>
这个流的消息源是一个 文件 inbound endpoint ,
注释1处是轮询文件夹 /data/expenses/1/in以发现新文件,频率是每分钟一次。
注释2处 定义了一个filename-regex-filter,指定endpoint只接收后缀名为.xml 的文件,并会忽略大小写。
注释3处,outbound endpoint 格式化文件名为时间戳加上原文件名。
为了得到后者你引用了originalFilename--这是由inbound endpoint填充进去的。
默认情况下,一个文件inbound endpoint向outbound endpoint传送文件时会在源文件夹把文件剪切掉。
可以通过设置文件 连接器的 autoDelete属性为false来改变这种默认行为。
但要小心,这回导致inbound endpoint 重复读取文件,直至文件被从源文件夹总删掉。
fileAge参数允许你读取文件存在时长超过某毫秒的文件。例如 设置为 5000 ,将导致文件inbound endpoint只处理 文件存在时长超过5分钟的文件。
多个mule节点轮询同一个共享文件系统
第8章你将看到 把同一个mule应用部署到多个mule实例中。这种场景下必须要小心,需要协调多个节点的
状态,避免发生同时读、删、移动文件。 mule企业版的的集群功能将会自动的协调和分散开mule应用对
文件传输的使用。
相关推荐
Mule in Action, Second Edition is a totally-revised guide covering Mule 3 fundamentals and best practices. It starts with a quick ESB overview and then dives into rich examples covering core concepts ...
《Mule in Action》一书深入探讨了Mule——一个轻量级消息框架与高度分布式的对象代理系统,为读者提供了全面的理论与实践指导。本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置...
《Mule in Action》是一本专注于Mule ESB(企业服务总线)的入门教程,旨在帮助读者系统地学习和理解这一强大的集成平台。Mule ESB是开源领域中的一个重量级选手,常用于构建灵活、可扩展的企业级集成解决方案。这...
mule in action 和doc文档详细介绍 Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持30多种传输协议...
Mule in Action is acomprehensive tutorial designed for working Java developers. This authoritativebook explores the architecture and the main features of version Mule 2 throughnumerous running ...
### Mule in Action 第二版 英文正式版 关键知识点概述 #### 一、书籍简介与背景 《Mule in Action》第二版是一本详细介绍Mule ESB(Enterprise Service Bus)这一著名开源框架的书籍。该书由David Dossot、John D...
在源码方面,《Mule in Action》会带领读者深入了解Mule的内部工作机制,包括如何阅读和理解Mule配置文件,以及如何自定义Mule组件。这有助于开发者更好地定制化Mule,以满足特定的业务需求。此外,通过学习Mule的...
总体而言,Mule in Action, Second Edition这本书是关于Mule ESB使用和集成实践的权威指南,涵盖了从基础概念到高级特性的广泛主题。本书适合于那些希望深入学习和利用Mule ESB进行企业级应用集成的开发人员和架构师...
《Mule in Action》是关于Mule ESB的实战指南,该书深入浅出地介绍了如何使用Mule这一强大的企业服务总线(ESB)进行应用程序集成。Mule ESB以其用户基数庞大、文档详尽以及社区活跃而备受赞誉,是企业级集成解决...
综上所述,通过分析给出的文件信息,我们可以得知"Mule in Action: Mule 实战"这本书对于希望深入了解和应用Mule ESB技术的IT专业人员来说,是一个非常好的资源。书中不仅涵盖了丰富的理论知识,还包含了丰富的案例...
### Mule 3.2 节点详解 Mule 3.2 是一款非常流行的集成平台,它基于企业服务总线(Enterprise Service Bus, ESB)架构设计而成,能够帮助开发者轻松地构建复杂的集成解决方案。本文将详细介绍 Mule 3.2 中的关键...
《Mule in Action》第二版是一本全面介绍如何使用Mule ESB进行高效集成开发的书籍,由David Dossot、John D’Emic和Victor Romero共同编写。 #### 二、Mule ESB的关键特性 **1. 消息处理:** Mule ESB支持多种消息...
本篇将深入探讨如何使用Mule ESB来调用由XFire发布的文件上传服务。 首先,理解Mule的核心概念至关重要。Mule ESB是一个开源的ESB,它提供了一个事件驱动的平台,用于连接不同系统和应用程序。通过使用Mule,我们...