Mule2.x Getting Started Guide札记(一)Using Mule

Mule2.x Getting Started Guide笔记(一)Using MuleMule2.x Getting Started Guide笔记(一)Using Mule1.Con

Mule2.x Getting Started Guide笔记(一)Using Mule
Mule2.x Getting Started Guide笔记(一)Using Mule
1.Configuring Mule
start mule by calling it from my own code:

MuleContext context = new DefaultMuleContextFactory().createMuleContext(new SpringXmlConfigurationBuilder("foo-config.xml"));
context.start();

to use the class import jar in pom.xml
<dependency>
<groupId>org.mule</groupId>
<artifactId>mule-core</artifactId>
<version>2.0.2</version>
</dependency>

All Mule configuration is accessible from a single object: org.mule.api.config.MuleConfiguration . Configurations in a MuleConfiguration are set when a MuleContext is created. The object becomes immutable after it is started and can be accessed using the following:

MuleContext context = MuleServer.getMuleContext();
MuleConfiguration configuration = context.getConfiguration();

2.mule Schema Defination
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesource.org/schema/mule/core/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:file="http://www.mulesource.org/schema/mule/file/2.0"
xmlns:jms="http://www.mulesource.org/schema/mule/jms/2.0"
xmlns:smtp="http://www.mulesource.org/schema/mule/smtp/2.0"
xmlns:pop3="http://www.mulesource.org/schema/mule/pop3/2.0"
xmlns:email="http://www.mulesource.org/schema/mule/email/2.0"
xmlns:xm="http://www.mulesource.org/schema/mule/xml/2.0"
xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
       http://www.mulesource.org/schema/mule/core/2.0 http://www.mulesource.org/schema/mule/core/2.0/mule.xsd
       http://www.mulesource.org/schema/mule/file/2.0 http://www.mulesource.org/schema/mule/file/2.0/mule-file.xsd
       http://www.mulesource.org/schema/mule/jms/2.0 http://www.mulesource.org/schema/mule/jms/2.0/mule-jms.xsd
       http://www.mulesource.org/schema/mule/smtp/2.0 http://www.mulesource.org/schema/mule/smtp/2.0/mule-smtp.xsd
       http://www.mulesource.org/schema/mule/pop3/2.0 http://www.mulesource.org/schema/mule/pop3/2.0/mule-pop3.xsd
       http://www.mulesource.org/schema/mule/email/2.0 http://www.mulesource.org/schema/mule/email/2.0/mule-email.xsd
       http://www.mulesource.org/schema/mule/xml/2.0 http://www.mulesource.org/schema/mule/xml/2.0/mule-xml.xsd">

</mule>

3、Get properties file
<description>MULE2.0.2 ATHENA</description>
<context:property-placeholder location="athena.properties" />

4.Get jms transport
config athena-config.xml
<jms:activemq-connector name="JMSConnector"
   brokerURL="${activeMQ.url}" />
config properties file athena.properties
#=================================
#    activeMQ configuration
#=================================
activeMQ.url=tcp\://192.168.50.90\:61616
add the jars in pom.xml
<dependency>
<groupId>org.mule.transports</groupId>
<artifactId>mule-transport-jms</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-core</artifactId>
      <version>4.1.1</version>
</dependency>

5.Import Spring config using <spring:import> tag
<spring:beans>
   <spring:import resource="classpath:applicationContext.xml" />
   <spring:import resource="classpath:core/applicationContext-dao.xml" />
</spring:beans>
error report below:
Offending resource: URL [file:/E:/work/athena/WebRoot/WEB-INF/classes/athena-config.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate NamespaceHandler for namespace [null]
Offending resource: URL [file:/E:/work/athena/WebRoot/WEB-INF/classes/applicationContext.xml]

the error is caused by the spring schema,modify the xml like this:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

</beans>

6.Start mule in a web application
To embed Mule inside a webapp, you provide one or more configuration file locations as context params and include a context listener to initialize the Mule Server.
web.xml:
<context-param>
   <param-name>org.mule.config</param-name>
   <param-value>
    athena-config.xml
   </param-value>
</context-param>
<listener>
   <listener-class>
    org.mule.config.builders.MuleXmlBuilderContextListener
   </listener-class>
</listener>

7.Start mule in a java application
init context:
static MuleContext muleContext = null;

DefaultMuleContextFactory muleContextFactory = new DefaultMuleContextFactory();
SpringXmlConfigurationBuilder configBuilder;
try {
configBuilder = new SpringXmlConfigurationBuilder(
    "athena-config.xml");
try {
   muleContext = muleContextFactory
     .createMuleContext(configBuilder);
} catch (InitialisationException e) {
   e.printStackTrace();
}
} catch (ConfigurationException e) {
e.printStackTrace();
}

start context:
try {
muleContext.start();
} catch (MuleException e) {
e.printStackTrace();
}

stop context:
try {
muleContext.stop();
} catch (MuleException e) {
e.printStackTrace();
}
muleContext.dispose();