Mule2.x Getting Started Guide札记(一)Using Mule
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();
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();