分享

消息驱动Bean例子

 sonny--李永胜 2007-03-30

 
package org.sonny.mc;
import java.io.Serializable;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Queue;
import javax.jms.Topic;

@Stateless
public class ScheduleMessProducerBean implements ScheduleMessProducerRemote,
  ScheduleMessProducerLocal {
 
 @Resource(mappedName="ConnectionFactory")
    ConnectionFactory connectionFactory;
    @Resource(mappedName="topic/Schedule")
    Topic schedule;
    private Connection con;
   
 public void sendTextMessage(String message) {
  Session s = connection();
  if(s == null) return;
  try {
   Destination dest = (Destination) schedule;
   Message mgs = s.createTextMessage(message);
   MessageProducer producer = s.createProducer(dest);
   producer.send(mgs);
   
   /*
             * Send a non-text control message indicating end of
             * messages.
             */
   producer.send(s.createMessage());
   s.close();
   producer.close();
   con.close();
  } catch (JMSException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 public void sendObjectMessage(Serializable objMgs) {
  Session s = connection();
  if(s == null) return;
  try {
   Destination dest = (Destination) schedule;
   Message mgs = s.createObjectMessage(objMgs);
   MessageProducer producer = s.createProducer(dest);
   producer.send(mgs);
   
   /*
             * Send a non-text control message indicating end of
             * messages.
             */
   //producer.send(s.createMessage());
   s.close();
   producer.close();
   con.close();
  } catch (JMSException e) {
   e.printStackTrace();
  }
 }
 private Session connection() {
  Session s = null;
  try {
   con = connectionFactory.createConnection();
   s = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
  } catch (JMSException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return s;
 }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多