Quantcast
Channel: Developer Feed - Snippet
Viewing all articles
Browse latest Browse all 178

Snoop MDB Java

$
0
0

Snoop MDB

The message driven beans are consumers of JMS messages. When message is received from the queue, we can find out a lot of details about the message. The following snippet of MDB tries to find out like name, id , destination , type etc.

<!--break-->

Snippet

  1. importjava.util.*;
  2. importjavax.ejb.*;
  3. importjavax.jms.*;
  4. importjavax.naming.*;
  5.  
  6. publicclass SnoopMDB implements MessageDrivenBean, MessageListener
  7. {
  8.   private MessageDrivenContext context;
  9.   privateContext jndiContext;
  10.  
  11.   publicvoid ejbCreate ()throws CreateException {}
  12.   publicvoid ejbRemove(){}
  13.  
  14.   publicvoid setMessageDrivenContext(MessageDrivenContext ctx)
  15.   {
  16.     context = ctx;
  17.     try
  18.     {
  19.       jndiContext =newInitialContext();
  20.     }
  21.     catch(NamingException ne)
  22.     {
  23.       thrownew EJBException(ne);
  24.     }
  25.   }
  26.  
  27.   /**
  28.    * The business logic
  29.    */
  30.   publicvoid onMessage(Message msg)
  31.   {
  32.     try
  33.     {
  34.       String text =null;
  35.  
  36.       System.out.println("===== New Message =====");
  37.       System.out.println("Type:        "+ msg.getClass().getName());
  38.       System.out.println("Destination: "+ msg.getJMSDestination());
  39.       System.out.println("Message ID:  "+ msg.getJMSMessageID());
  40.  
  41.       if( msg instanceof TextMessage )
  42.       {
  43.         text =((TextMessage)msg).getText();
  44.       }
  45.       elseif( msg instanceof ObjectMessage )
  46.       {
  47.         text =((ObjectMessage)msg).getObject().toString();
  48.       }
  49.       elseif( msg instanceof MapMessage )
  50.       {
  51.         StringBuffer sb =newStringBuffer("\n");
  52.         MapMessage mm =(MapMessage)msg;
  53.         Enumerationenum= mm.getMapNames();
  54.         while(enum.hasMoreElements())
  55.         {
  56.           String name =(String)enum.nextElement();
  57.           Object val = mm.getObject(name);
  58.           sb.append("> "+ name +" = "+ val +'\n');
  59.         }
  60.         text = sb.toString();
  61.       }
  62.  
  63.       if(text !=null)
  64.         System.out.println("Content:     "+ text);
  65.     }
  66.     catch(Throwable t)
  67.     {
  68.       System.out.println("?! Failed:   "+ t.getMessage());
  69.     }
  70.   }
  71.  
  72. }

Viewing all articles
Browse latest Browse all 178

Trending Articles