mule做了一周多了,入门很难,光跑那几个demo就很费事情,它提供的很多东西都和文档上的不一致,这点真的想骂人,不成熟的东西就不要拿出来啊,拿出来又用不起,老板又不听这种解释。。。。我真的苦啊!!!
不过总算过头了,我成功的调通了mule的xmpp路由功能,虽然里面有bug,但我自己写了一个类的代替它,勉强可以用了。
下面我把如何配置xml文件以及如果启动告诉大家,希望对大家有些帮助,不用再花费太多时间去研究!
下面是一个完整可运行的,通过测试的xml
,
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
xmlns:vm="http://www.mulesource.org/schema/mule/vm/2.2"
xmlns:tcp="http://www.mulesource.org/schema/mule/tcp/2.2"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd
http://www.mulesource.org/schema/mule/tcp/2.2 http://www.mulesource.org/schema/mule/tcp/2.2/mule-tcp.xsd
http://www.mulesource.org/schema/mule/vm/2.2 http://www.mulesource.org/schema/mule/vm/2.2/mule-vm.xsd">
<custom-transformer name="StdinToNameString" class="org.mule.example.hello.StdinToNameString"/>
<custom-transformer name="NameStringToChatString" class="org.mule.example.hello.NameStringToChatString"/>
<custom-transformer name="ChatStringToString" class="org.mule.example.hello.ChatStringToString"/>
<custom-transformer name="ExceptionToString" class="org.mule.example.hello.ExceptionToString"/>
<custom-transformer name="StringToString" class="transformer.StringToString"></custom-transformer>
<custom-transformer name="XmppPacketToObject" class="org.mule.transport.xmpp.transformers.XmppPacketToObject"/>
<custom-transformer name="ObjectToXmppPacket" class="org.mule.transport.xmpp.transformers.ObjectToXmppPacket"/>
<custom-transformer name="XmppPacketToString" class="xmpp.XmppPacketToString"/>
<custom-transformer name="ByteArrayToObject" class="org.mule.transformer.simple.ByteArrayToObject"/>
<custom-transformer name="ObjectToTempXmppPacket" class="xmpp.ObjectToTempXmppPacket"/>
<!--
An interceptor is a piece of code that can be configured to execute
before and/or after an event is received for a component.
You can define a stack of interceptors that will be executed in sequence.
You can then configure the stack on your components.
-->
<!--
The Mule model initialises and manages your UMO components
-->
<tcp:connector name="TcpConnector"
keepAlive="true" receiveBufferSize="2048" sendBufferSize="2048"
receiveBacklog="500" serverSoTimeout="3000"
keepSendSocketOpen="true" validateConnections="true">
<tcp:direct-protocol payloadOnly="true"/>
</tcp:connector>
<tcp:endpoint connector-ref="TcpConnector" name="Endpoint" host="192.168.1.20" port="5200" synchronous="true"/>
<model name="helloSample">
<!--
A Mule service defines all the necessary information about how your components will
interact with the framework, other components in the system and external sources.
Please refer to the Configuration Guide for a full description of all the parameters.
-->
<service name="GreeterUMO">
<inbound>
<tcp:inbound-endpoint name="inboundEndpoint" connector-ref="TcpConnector"
port="5200" host="192.168.1.20" transformer-refs="ByteArrayToObject ObjectToTempXmppPacket"/>
<!-- <inbound-endpoint ref="inboundEndpoint"/>-->
</inbound>
<!-- <component class="xmpp.XmppOtherComponet"/>-->
<outbound>
<filtering-router>
<vm:outbound-endpoint path="iq"/>
<payload-type-filter expectedType="beans.Person"/>
</filtering-router>
<filtering-router>
<vm:outbound-endpoint path="iq"/>
<payload-type-filter expectedType="qflag.xmpp.packet.IQ"/>
</filtering-router>
<filtering-router>
<vm:outbound-endpoint path="message"/>
<payload-type-filter expectedType="qflag.xmpp.packet.Message"/>
</filtering-router>
<!-- <filtering-router>-->
<!-- <vm:outbound-endpoint path="message"/>-->
<!-- <payload-type-filter expectedType="qflag.xmpp.packet.IQ"/>-->
<!-- </filtering-router>-->
<filtering-router>
<vm:outbound-endpoint path="userErrorHandler"/>
<payload-type-filter expectedType="java.lang.Exception"/>
</filtering-router>
</outbound>
<!-- Route unexpected errors to separate error handler -->
<default-service-exception-strategy>
<vm:outbound-endpoint path="systemErrorHandler"/>
</default-service-exception-strategy>
</service>
<service name="IQUMO">
<inbound>
<vm:inbound-endpoint path="iq" responseTransformer-refs="StringToString" />
</inbound>
<component class="xmpp.service.IQService" />
<!-- Route unexpected errors to separate error handler -->
<default-service-exception-strategy>
<vm:outbound-endpoint path="systemErrorHandler"/>
</default-service-exception-strategy>
</service>
<service name="MessageUMO">
<inbound>
<vm:inbound-endpoint path="message" />
</inbound>
<component class="xmpp.service.MessageService"/>
<!-- Route unexpected errors to separate error handler -->
<default-service-exception-strategy>
<vm:outbound-endpoint path="systemErrorHandler"/>
</default-service-exception-strategy>
</service>
<!-- This error handler returns user error messages to caller. Errors could also be routed elsewhere,
e.g. into an error file, send via email to a list, stored in a database, etc. -->
<service name="UserErrorHandler">
<inbound>
<vm:inbound-endpoint path="userErrorHandler" transformer-refs="ExceptionToString"/>
</inbound>
<outbound>
<pass-through-router>
<stdio:outbound-endpoint system="OUT"/>
</pass-through-router>
</outbound>
</service>
<!-- Handle any unexpected errors. Errors could also be routed elsewhere,
e.g. into an error file, send via email to a list, stored in a database, etc. -->
<service name="SystemErrorHandler">
<inbound>
<vm:inbound-endpoint path="systemErrorHandler"/>
</inbound>
<outbound>
<pass-through-router>
<stdio:outbound-endpoint system="ERR"/>
</pass-through-router>
</outbound>
</service>
</model>
<!----><!----><!---->
<!----><!----><!----><!---->
- 大小: 31.4 KB
分享到:
相关推荐
关于在tomcat上进行mule多线程数量参数配置
3. **Mule配置**:学习XML配置文件的结构,如何定义和配置各种连接器、处理器和流程。 4. **Mule Studio和Anypoint Platform**:Mule的集成开发环境(IDE)及其在线平台,用于创建、测试和部署Mule应用程序。 5. *...
### Mule 入门知识点详解 #### 一、Mule 概述 Mule 是一款企业级集成平台,主要用于连接不同的应用程序和服务,并实现数据和消息的传输。它提供了丰富的连接器,支持多种协议,能够方便地与其他系统进行交互。本文...
"Mule3.4入门学习" 本文将对Mule3.4进行入门学习,涵盖Mule环境搭建、Webservice的发布、JMS消息通信、ftp、File应用、协议转换等知识点。 一、Mule环境搭建 Mule环境的搭建需要JDK的支持,包括下载、安装、配置...
本教程将带您入门Mule ESB项目,通过实例学习其核心概念和操作。 首先,我们需要理解ESB的基本概念。ESB作为一个中间件,它的主要作用是提供一种松耦合的方式,使得各个系统之间可以通过标准接口进行通信,而不是...
Mule的配置文件采用XML格式,组织成一棵XML元素树,其中包含了对服务、路由、转换器等关键组件的定义。 #### 二、基本标签及功能介绍 ##### 1. `<model>` - **定义**: 用于定义应用程序中的服务。 - **示例**: `...
接下来,你可以进一步学习如何创建、配置和部署Mule应用,理解其核心概念,如消息传递、连接器、数据映射和流程控制,以及如何利用Mule Studio等工具提升开发效率。Mule的强大在于其可扩展性和灵活性,能够适应各种...
mule的配置文档 自己整理,很实用滴,希望大家可以和我一样少走歪路
`mule-spring-configuration.dtd`和`mule-configuration.dtd`是Mule ESB的XML配置文件的DTD(文档类型定义),它们规定了XML配置文件的结构和元素。Spring是Mule ESB的核心组件之一,负责管理对象的生命周期和依赖...
在config目录下新增一个sayHello-mule-config.xml配置文件,该文件用于定义Mule项目的配置信息。该文件的内容包括Mule项目的命名空间、SchemaLocation等信息。 四、Mule项目的配置和部署 在Mule项目中,需要配置...
标题与描述概述的知识点主要围绕Mule ESB的入门、介绍以及架构理解展开,下面将对这些知识点进行详细的解析和扩展: ### Mule是什么? Mule是一个基于Java的高度可扩展的开源消息框架,旨在简化应用系统间的通信和...
在《Mule3 User Guide》中,详细介绍了如何理解和配置 Mule 的 XML 配置文件。 1. **关于 XML 配置文件**:这一章节重点讲述了 Mule 的 XML 配置文件的基本结构和语法。通过这个部分的学习,开发者能够掌握如何在 ...
- 在Mule配置文件(如`mule-config.xml`)中定义JMS连接工厂。 - 创建JMS收发消息的端点(Endpoints),用于消费和发布消息。 - 编写Mule流程,指定何时和如何发送和接收消息。 - 配置ActiveMQ的URL、用户名和密码等...
添加两个`context-param`标签,指定Mule的配置文件(例如`mule-config.xml`)和Log4J的日志配置文件(例如`log4j.properties`)的位置。 ```xml ... <param-name>org.mule.config <param-value>mule-config....
- **从DTD到Schema**:Mule 1.4使用的是DTD(Document Type Definition)来定义XML文件结构,而Mule 2.0则采用了更为先进的XML Schema来验证XML文件的格式。这使得配置文件更易于理解和维护。 - **新的命名空间**:...
"ws-example-backend.xml" 文件是Mule应用的核心配置文件,其中包含了Web服务的具体定义。它可能包含一个或多个消息处理器,如HTTP监听器(用于接收请求)、数据转换器(如GRF文件中的图形化流程定义)、以及业务...
此过程通常涉及XML配置文件的编写。例如,可以配置Mule实例来监听特定端口上的HTTP请求,并处理这些请求。 #### 6. **配置端点** 端点配置是指指定Mule如何接收或发送消息的具体细节。这包括URL、认证信息和其他...
3. **Spellchecker.xml**: 这很可能是Mule的应用配置文件,XML格式是Mule配置的主要方式。通过这个文件,开发者可以定义数据流、连接器、处理器和路由器等,以实现数据的传输和业务逻辑。例如,我们可能会看到定义了...