[jboss-user] [Messaging, JMS & JBossMQ] - Re: Sending Entities in Messages?

Byorn do-not-reply at jboss.com
Thu Dec 28 05:15:44 EST 2006


//use this send the object to the queue
public class SendMessagesViaMDB{

//method to get the queue connection


public static javax.jms.QueueConnection getQueueConnection( java.util.Hashtable environment ) throws javax.naming.NamingException, javax.jms.JMSException
   {
      // Obtain initial context
      javax.naming.InitialContext initialContext = new javax.naming.InitialContext(environment);
      try {
         java.lang.Object objRef = initialContext.lookup(CONNECTION_FACTORY_JNDI_NAME);
         return ((javax.jms.QueueConnectionFactory) objRef).createQueueConnection();
      } finally {
         initialContext.close();
      }
   }


 /**
    * TO BE CALLED IN THE CLIENT SIDE
    * @param STUFF
    */
  public void sendSTUFFViaMDB(Collection STUFF) {
	QueueConnection queueConnection = null;
    	QueueSession jmsSession = null;

        try {
            queueConnection = getTravelAgentMailingServiceMDBQueueConnection();
            jmsSession = queueConnection.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
            QueueSender sender = jmsSession.createSender(getQueueConnection(JNDI PROPS));
            
            // create the message and set the content
            ObjectMessage message = jmsSession.createObjectMessage();
            message.setObject((ArrayList) STUFF) 
                
            //send the message
            sender.send(message);
            sender.close();
            log.debug("Message is written to jms queue");
        } catch (JMSException e) {
            log.error("Sending message via jms failed", e);
        } catch (NamingException e) {
            log.error("Sending message via jms failed",e);
        }  catch(ModuleException moduleException) {
            log.error("Sending message via jms failed", moduleException);
        } finally {
        	if (queueConnection != null){
        		try {
					queueConnection.close();
				} catch (JMSException e) {
					log.error("Closing jms queue connection failed", e);
				}
        	}
        	if (jmsSession != null){
        		try {
					jmsSession.close();
				} catch (JMSException e) {
					log.error("Closing jms session failed", e);
				}
        	}
        }
    }



//THE MDB
public class MessagingServiceMDB implements MessageDrivenBean, MessageListener {

public void onMessage(Message message){
        try {
            ObjectMessage objMessage = (ObjectMessage)message;
            ArrayList msgProfiles = (ArrayList)objMessage.getObject();
            MyMessageManager manager = new MyMessageManager ();
            manager.processMessages(msgProfiles);
        } catch (JMSException jmsException) {
+ jmsException.getMessage(), jmsException);
        } catch (Exception exception) {
+ exception.getMessage(), exception);
        }
    }

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3996602#3996602

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3996602



More information about the jboss-user mailing list