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; } } |
|
来自: sonny--李永胜 > 《ejb3.0相关代码及配置》