定时扫描特定目录的rss文件:
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:rss="http://www.mulesoft.org/schema/mule/rss" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:test="http://www.mulesoft.org/schema/mule/test" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/rss http://www.mulesoft.org/schema/mule/rss/current/mule-rss.xsd http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/schema/mule/test/current/mule-test.xsd"> <file:connector name="fileConnector" streaming="false"/> <flow name="feedSplitterConsumer"> <file:inbound-endpoint path="/e:/download/" pollingFrequency="100" > <file:filename-wildcard-filter pattern="*.rss"/> <rss:feed-splitter/> </file:inbound-endpoint> <echo-component/> <component> <singleton-object class="com.easyway.esb.mule.rss.EntryReceiver"/> </component> </flow> </mule>
轮询特定的路径:
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:rss="http://www.mulesoft.org/schema/mule/rss" xmlns:http="http://www.mulesoft.org/schema/mule/http" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/rss http://www.mulesoft.org/schema/mule/rss/current/mule-rss.xsd"> <http:polling-connector name="PollingHttpConnector" pollingFrequency="1000" discardEmptyContent="false"/> <flow name="feedConsumer"> <http:inbound-endpoint address="http://topmanopensource.iteye.com/rss" connector-ref="PollingHttpConnector" /> <rss:feed-splitter/> <rss:entry-last-updated-filter/> </flow> </mule>
定期从jms发送rss文件信息,并读取:
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:atom="http://www.mulesoft.org/schema/mule/atom" xmlns:jms="http://www.mulesoft.org/schema/mule/jms" xmlns:rss="http://www.mulesoft.org/schema/mule/rss" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:test="http://www.mulesoft.org/schema/mule/test" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/rss http://www.mulesoft.org/schema/mule/rss/current/mule-rss.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/atom http://www.mulesoft.org/schema/mule/atom/current/mule-atom.xsd http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/schema/mule/test/current/mule-test.xsd"> <jms:activemq-connector name="jmsConnectorNoRedelivery" maxRedelivery="-1" /> <spring:beans> <spring:bean id="feedConsumer" class="com.easyway.esb.mule.rss.FeedReceiver" /> <spring:bean id="entryReceiver" class="com.easyway.esb.mule.rss.EntryReceiver" /> </spring:beans> <flow name="feedConsumerFlow"> <jms:inbound-endpoint queue="feed.in" connector-ref="jmsConnectorNoRedelivery"/> <component> <spring-object bean="feedConsumer"/> </component> </flow> <flow name="feedSplitterConsumerFlow"> <jms:inbound-endpoint queue="feed.split.in" exchange-pattern="one-way" connector-ref="jmsConnectorNoRedelivery"> <rss:feed-splitter/> </jms:inbound-endpoint> <component> <spring-object bean="entryReceiver"/> </component> </flow> </mule>
手动生成rss文件:
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rss="http://www.mulesoft.org/schema/mule/rss" xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd http://www.mulesoft.org/schema/mule/rss http://www.mulesoft.org/schema/mule/rss/current/mule-rss.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> <rss:feed-last-updated-filter lastUpdate="2009-10-01 13:00:00" acceptWithoutUpdateDate="false" name="feedFilter"/> <rss:object-to-feed-transformer name="ObjectToFeed"/> <flow name="flowTest"> <vm:inbound-endpoint path="feed.in"> <rss:feed-splitter/> <rss:entry-last-updated-filter lastUpdate="2009-10-01"/> <rss:object-to-feed-transformer/> </vm:inbound-endpoint> <echo-component/> </flow> </mule>
package com.easyway.esb.mule.rss; import org.mule.api.annotations.param.Payload; import com.sun.syndication.feed.synd.SyndEntry; import java.util.concurrent.atomic.AtomicInteger; /** * * @author longgangbai * */ public class EntryReceiver { private AtomicInteger count = new AtomicInteger(0); public void readEntry(@Payload SyndEntry entry) throws Exception { count.getAndIncrement(); } public int getCount() { return count.get(); } }
package com.easyway.esb.mule.rss; import org.mule.api.annotations.param.Payload; import com.sun.syndication.feed.synd.SyndFeed; import java.util.concurrent.atomic.AtomicInteger; /** * * @author longgangbai * */ public class FeedReceiver { private AtomicInteger count = new AtomicInteger(0); public void readFeed(@Payload SyndFeed feed) throws Exception { count.set(feed.getEntries().size()); } public int getCount() { return count.get(); } }
测试代码:
/* * Copyright (c) EASYWAY 2011 All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.easyway.esb.mule.rss; import java.io.File; import org.apache.commons.io.FileUtils; import org.mule.api.MuleContext; import org.mule.api.client.MuleClient; import org.mule.api.context.MuleContextFactory; import org.mule.config.spring.SpringXmlConfigurationBuilder; import org.mule.context.DefaultMuleContextFactory; /** * <p>鍔熻兘鎻忚堪,璇ラ儴鍒嗗繀椤讳互涓枃鍙ュ彿缁撳熬銆�p> * * 鍒涘缓鏃ユ湡 2013-8-26<br> * @author $Author$<br> * @version $Revision$ $Date$ * @since 3.0.0 */ public class MuleRssMain { public static void main(String[] args) { try { String configFile = "jms-rss-consume.xml"; System.setProperty("mule.verbose.exceptions","true"); String[] configFileArr = new String[] {configFile }; MuleContextFactory muleContextFactory = new DefaultMuleContextFactory(); MuleContext muleContext = muleContextFactory .createMuleContext(new SpringXmlConfigurationBuilder(configFileArr)); muleContext.start(); MuleClient client = muleContext.getClient(); FeedReceiver component = (FeedReceiver)muleContext.getRegistry().get("feedConsumer"); String path=MuleRssMain.class.getClassLoader().getResource("./sample-feed.rss").getFile(); String feed=FileUtils.readFileToString(new File(path)); client.dispatch("jms://feed.in", feed, null); Thread.sleep(2000); System.out.println(component.getCount()); client = muleContext.getClient(); component = (FeedReceiver)muleContext.getRegistry().get("feedConsumer"); client.dispatch("jms://feed.split.in", feed, null); Thread.sleep(5000); System.out.println(component.getCount()); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
相关推荐
`mule-spring-configuration.dtd`和`mule-configuration.dtd`是Mule ESB的XML配置文件的DTD(文档类型定义),它们规定了XML配置文件的结构和元素。Spring是Mule ESB的核心组件之一,负责管理对象的生命周期和依赖...
根据提供的文件内容,以下是关于Mule ESB手册-中文版的知识点: 1. Mule ESB简介 ...通过这些知识点的学习,可以加深对Mule ESB的使用方法的理解,并通过实例加深对ESB概念的理解,对新手来说非常有帮助。
在本篇“Mule ESB 学习笔记(13)CSV数据文件到数据库”中,我们将探讨如何使用Mule ESB(Enterprise Service Bus,企业服务总线...通过实践和学习,我们可以更好地掌握Mule ESB在实际项目中的应用,提升我们的IT技能。
MULE ESB(Mule Enterprise Service Bus)是Anypoint Platform的核心组件,它是一个强大的、全面集成的企业服务总线(ESB),专为构建、部署和管理API和集成解决方案而设计。MULE ESB-4.1是MuleSoft公司推出的企业版...
### ESB原理及Mule ESB实践 ...综上所述,ESB和Mule ESB是现代IT架构中不可或缺的部分,它们为企业提供了一种灵活、高效的服务集成方案。无论是理论层面还是实际应用,掌握ESB原理及Mule ESB实践都是非常有价值的。
Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...
五、学习和使用Mule ESB "MuleESB3"这个文件名可能指的是Mule ESB的第三个主要版本。在该版本中,用户可以期待更完善的特性和改进。对于初学者,建议首先通过官方文档了解Mule ESB的基本概念和工作原理,然后使用Any...
Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、Web Services、JDBC、...
通过《Mule ESB 3.0 中文教程》,你将能够掌握Mule ESB的基础知识,理解其核心概念,并具备开发和管理Mule ESB应用的能力。随着学习的深入,你还将了解到更多高级特性和实践技巧,为你的IT职业生涯添加一项重要的...
- **定位**:Mule ESB 3.0是一款轻量级的消息框架和整合平台,旨在帮助企业轻松地集成不同的系统和服务。 - **核心特性**:基于EIP(Enterprise Integration Patterns)原则构建,支持多种传输协议(如file, FTP, ...
《Mule ESB 开发手册》是一份详尽的指南,专为希望深入了解并掌握 Mule ESB(Enterprise Service Bus)技术的...通过深入学习和实践,开发者可以充分利用 Mule ESB 的强大功能,实现高效、可靠的企业级集成解决方案。
《Mule ESB Cookbook随书源码》是一个与Mule ESB相关的实践指南,它包含了大量实例代码,旨在帮助读者深入理解和应用Mule ESB这一开源企业服务总线(Enterprise Service Bus)。Mule ESB是业界广泛采用的ESB解决方案...
Mule ESB,全称Mule Enterprise Service Bus,是一个开源的企业服务总线系统,旨在促进不同应用程序和服务之间的数据交换和集成。Mule的核心设计是基于轻量级的Java平台,尤其是J2EE 1.4标准,使得它能够在各种企业...
本教程将带您入门Mule ESB项目,通过实例学习其核心概念和操作。 首先,我们需要理解ESB的基本概念。ESB作为一个中间件,它的主要作用是提供一种松耦合的方式,使得各个系统之间可以通过标准接口进行通信,而不是...
`APDevFundamentals3.8_studentManual_20jun2016【翻译狗www.fanyigou.com】.pdf` 文件表明了用户可能利用这个平台将英文版的手册翻译成中文,以便于国内的开发者理解和学习。 总结起来,这个压缩包提供的资源对于...
MULE ESB-4.1社区版是Mulesoft为开发者提供的免费版本,它包含了基本的ESB功能,适合学习、开发和小规模项目部署。 在MULE ESB-4.1社区版中,主要包含以下几个关键组件和概念: 1. **AnyPoint Studio**: AnyPoint ...
总结来说,《Mule ESB 3用户指南》为用户提供了一个全面的、步骤详细的、实践导向的指导,从基础的配置、服务集成到开发、测试、文档编写和云服务集成,覆盖了使用Mule ESB进行企业级集成应用开发的各个阶段。
MuleESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。MuleESB支持集成现有系统而无论其底层采用何种技术,如JMS、WebServices、JDBC、HTTP以及其他...