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();

你可能感兴趣的:(spring,xml,Web,jms,activemq)