企业集成模式实践——用actviemq集成.net应用系统
来源:互联网 发布:免费虚拟局域网软件 编辑:程序博客网 时间:2024/05/16 01:29
最近,在企业集成方面,做了一些技术尝试,用activemq来集成java与.net系统。
1.首先,搭建主数据管理系统
主界面如下:
3.在spring的配置文件中配置名为testTopic的队列:
<!-- 配置JMS连接工厂 --> <bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop"> <property name="connectionFactory"> <bean class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616"/> </bean> </property> <!-- <property name="maxConncetions" value="1"/>--> </bean> <!-- <bean id ="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://localhost:61616"/> </bean>--> <bean id="SendMessage" class="test.SendMessage"> <property name="jmsTemplate" ref="jmsTemplate"/> <property name="topicName" value="testTopic"/> </bean> <!-- <bean id="Listener" class="test.Listener"> <constructor-arg ref="jmsTemplate"/> <constructor-arg value="testTopic" /> </bean> --> <!-- 配置JMS模版 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="jmsFactory"/> <property name="defaultDestination" ref="testTopic"/> <property name="explicitQosEnabled" value="true"/> <property name="deliveryMode" value="1" /> </bean> <bean id="testTopic" class="org.apache.activemq.command.ActiveMQTopic"> <constructor-arg value="testTopic" /> </bean>
4.发送消息:
package test;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.Session;import javax.jms.Topic;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator;public class SendMessage {private JmsTemplate jmsTemplate;private String topicName;private Topic testTopic;public void setJmsTemplate(JmsTemplate jmsTemplate){this.jmsTemplate = jmsTemplate;}public void setTopicName(String topicName) {this.topicName = topicName;}public void sendMessage(final Map message) throws JMSException,InterruptedException{ if(testTopic==null){System.out.println(jmsTemplate);ConnectionFactory cf =jmsTemplate.getConnectionFactory();Connection conn = cf.createConnection();Session sess = conn.createSession(false,Session.AUTO_ACKNOWLEDGE);testTopic = sess.createTopic(topicName);}jmsTemplate.send(testTopic, new MessageCreator(){@Overridepublic Message createMessage(Session session) throws JMSException {MapMessage mapMess = session.createMapMessage();Set temp = message.entrySet();Iterator temp2 = temp.iterator();while(temp2.hasNext()){Entry entry = (Entry)temp2.next();mapMess.setObject((String)entry.getKey(), entry.getValue());}return mapMess;}});}/** * 测试 * @param args */public static void main(String[] args) {}}
5.接收消息:
package test;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.Session;import javax.jms.Topic;import org.springframework.jms.JmsException;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.listener.DefaultMessageListenerContainer;public class Listener implements MessageListener{private JmsTemplate jmsTemplate;private String topicName;public Listener(JmsTemplate jmsTemplate,String topicName){this.jmsTemplate = jmsTemplate;this.topicName = topicName;Topic topic;try{topic = this.jmsTemplate.getConnectionFactory().createConnection().createSession(false, Session.AUTO_ACKNOWLEDGE).createTopic(topicName);DefaultMessageListenerContainer dc = new DefaultMessageListenerContainer();dc.setPubSubDomain(true);dc.setDestination(topic);dc.setConnectionFactory(this.jmsTemplate.getConnectionFactory());dc.setPubSubNoLocal(false);dc.setMessageListener(this);dc.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);dc.initialize();dc.start();}catch(JMSException e){e.printStackTrace();}}@Overridepublic void onMessage(Message arg0) {// TODO Auto-generated method stubSystem.out.println("收到的消息:"+arg0);MapMessage map = (MapMessage) arg0;try {System.out.println(map.getObject("Name"));} catch (JMSException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
6.点击消息同步,执行SendMessage:
7.在.net中进行接收监听,点击订阅消息:
- 企业集成模式实践——用actviemq集成.net应用系统
- 企业应用集成
- 企业应用集成分类
- 企业应用集成
- 怎么做EAI——认识企业应用集成
- EAI(企业应用集成)CMS(内容管理系统)概念学习
- 监控系统解围企业应用集成平台困境
- J2EE中间件集成企业应用
- 企业应用集成简单分类
- 需要项目集成,网站集成,企业应用的视频会议或视频聊天室系统均可联系本人
- CruiseControl.NET持续集成实践
- DevOps企业实践指南(6): 持续集成
- 数据仓库与企业应用集成(一)
- 数据仓库与企业应用集成(二)
- 使用ESB实现企业应用持续集成
- 使用ESB实现企业应用持续集成
- 使用ESB实现企业应用持续集成
- 使用ESB实现企业应用持续集成
- 使用JDI监听Java程序运行
- Count and Say
- git 查看提交历史
- iframe
- 简单学习CSS网页布局 三
- 企业集成模式实践——用actviemq集成.net应用系统
- 求二进制中1的个数
- 看到的关于Appstore对UGC类应用的审核政策
- 常用DIV+CSS网页制作布局技术
- 设计模式读书笔记-----简单工厂模式
- linux查看某进程内存、CPU占用
- 读取文件内容到NSString
- 黑马程序员__关于学习Properties的学习总结
- 简单学习CSS网页布局 二