开发工具:
文件大小: 60kb
下载次数: 0
上传时间: 2009-09-25
详细说明: 1.消息的生产者 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import javax.jms.JMSException; import javax.jms.ObjectMessage; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import javax.jms. TopicConnection; import javax.jms.TopicConnectionFactory; import javax.jms.TopicPublisher; import javax.jms.TopicSession; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import pojo.Student; /** * * @author Johnson */ public class Main { /** Creates a new instance of Main */ public Main() { } /** * @param args the command line arguments */ public static void main(String[] args) { Context context = null; TopicConnection connection = null; TopicSession session = null; TopicPublisher publisher = null; try { context = new InitialContext(); //1, 获取连接工厂 TopicConnectionFactory connectionFactory = (TopicConnectionFactory)context.lookup("topic/connectionFactory"); //2,创建连接 connection = connectionFactory.createTopicConnection(); //3, 创建会话 session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); //4, 获取目的地 Topic topic = (Topic)context.lookup("topic/destination"); //5, 创建生产者 publisher = session.createPublisher(topic); //6, 发送消息 //publish ObjectMessage Student student = new Student(); student.setName("Johnson"); student.setAge(26); ObjectMessage objectMessage = session.createObjectMessage(); objectMessage.setObject(student); publisher.publish(objectMessage); //publish TextMessage BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String data = br.readLine(); while(!data.equals("quit")){ TextMessage message = session.createTextMessage(data); publisher.publish(message); data = br.readLine(); } } catch (NamingException ex) { ex.printStackTrace(); } catch (JMSException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally{ //从小到大释放资源 if(publisher != null){ try { publisher.close(); } catch (JMSException ex) { ex.printStackTrace(); } } if(session != null){ try { session.close(); } catch (JMSException ex) { ex.printStackTrace(); } } if(connection != null){ try { connection.close(); } catch (JMSException ex) { ex.printStackTrace(); } } if(context != null){ try { context.close(); } catch (NamingException ex) { ex.printStackTrace(); } } } } } 2.消息的消费者 import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; import javax.jms.TopicSession; import javax.jms.TopicSubscriber; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import pojo.Student; /** * * @author Johnson */ public class Main { /** Creates a new instance of Main */ public Main() { } /** * @param args the command line arguments */ public static void main(String[] args) { Context context = null; TopicConnection connection = null; TopicSession session = null; TopicSubscriber subscriber = null; try { context = new InitialContext(); //1, 获取连接工厂 TopicConnectionFactory connectionFactory = (TopicConnectionFactory)context.lookup("topic/connectionFactory"); //2,创建连接 connection = connectionFactory.createTopicConnection(); connection.start();//must //3, 创建会话 session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); //4, 获取目的地 Topic topic = (Topic)context.lookup("topic/destination"); //5, 创建消费者 subscriber = session.createSubscriber(topic); //6, 接收消息 //方式一: /*while(true){ Message message = subscriber.receive(); if(message instanceof TextMessage){ TextMessage textMessage = (TextMessage)message; System.out.println("the message is : "+textMessage.getText()); } if(message instanceof ObjectMessage){ ObjectMessage objectMessage = (ObjectMessage)message; Student student = (Student)objectMessage.getObject(); System.out.println("hello "+student.getName()+" ,the next year your will be "+(student.getAge()+1)+" years old"); } }*/ //方式二:但不能在finally中释放资源(那样的话一次执行完后所有的资源都释放了,就没有资源为下次服务了) ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.