Mule JMS Transport之ActiveMQ调整
Mule JMS Transport之ActiveMQ整合
简单需求:
1.服务端从控制台接收信息转为消息发送之队列.
2.客户端从队列获取消息转换为消息输出到控制台.
mule配置信息如下:
<springs:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <springs:property name="locations"> <springs:list> <springs:value>classpath:mq.properties</springs:value> <springs:value>classpath:broker.properties</springs:value> </springs:list> </springs:property> <springs:property name="fileEncoding"> <springs:value>UTF-8</springs:value> </springs:property> </springs:bean> <springs:bean id="activeMqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <springs:property name="brokerURL" value="${broker.tcp.local.url}"/> <!-- More properties you want set on ActiveMQConnectionFactory --> </springs:bean> <!-- 创建队列工厂 --> <jms:activemq-connector name="jmsConnector" specification="1.1" brokerURL="vm://localhost" connectionFactory-ref="activeMqConnectionFactory"/> <!-- 获取控制台对象 --> <stdio:connector name="stdioConnector" messageDelayTime="1234" promptMessage="Please enter something: " /> <!-- 服务端从控制台获取信息发送至队列 --> <model name="jmsServer"> <service name="jmsService"> <inbound> <stdio:inbound-endpoint system="IN"/> </inbound> <outbound> <pass-through-router> <jms:outbound-endpoint connector-ref="jmsConnector" topic="backup-reports"/> </pass-through-router> </outbound> </service> </model> <!-- 客户端从队列获取信息发送控制台 --> <model name="jmsClient"> <service name="Backup Reporting Service"> <inbound> <jms:inbound-endpoint topic="backup-reports" connector-ref="jmsConnector"> <jms:jmsmessage-to-object-transformer/> </jms:inbound-endpoint> </inbound> <outbound> <pass-through-router> <stdio:outbound-endpoint system="OUT"/> </pass-through-router> </outbound> </service> </model>
测试代码:
import org.mule.api.MuleContext; import org.mule.api.context.MuleContextFactory; import org.mule.config.spring.SpringXmlConfigurationBuilder; import org.mule.context.DefaultMuleContextFactory; /** * <p> * 简单需求: * 1.服务端从控制台接收信息转为消息发送之队列. * 2.客户端从队列获取消息转换为消息输出到控制台. * <p> * * 创建日期 2013-8-17<br> * @author $Author$<br> * @version $Revision$ $Date$ * @since 3.0.0 */ public class MuleActiveMQMain { public static void main(String[] args) { try { String configFile = "mule-activemq-config-service.xml"; String[] configFileArr = new String[] {configFile }; MuleContextFactory muleContextFactory = new DefaultMuleContextFactory(); MuleContext context = muleContextFactory .createMuleContext(new SpringXmlConfigurationBuilder(configFileArr)); context.start(); } catch (Exception e) { e.printStackTrace(); } } }