Advertisement

05.31.2008 at 09:09AM PDT, ID: 23447032
[x]
Attachment Details

How to receive message from a MDB?

Asked by chenwei in Enterprise Java Beans (EJB), Java Programming Language, J2EE

I created and deployed a MDB. I built a test client which send message to the MDB. It looks as follow:

***************
      public static void main(String[] args) {
            new TestSendMessage();
      }

      public TestSendMessage() {
            super();
            System.out.println("this is a client to send message");
            try {
                  QueueConnection queueConnection = MyMessageUtil.getQueueConnection();
                  // Die konfigurierte Queue holen:
                  Queue queue = MyMessageUtil.getQueue();

                  // Verbindung erzeugen:
                  QueueSession queueSession = queueConnection.createQueueSession(
                              false, Session.AUTO_ACKNOWLEDGE);
                  QueueSender queueSender = queueSession.createSender(queue);

                  // Senden der Nachricht:
                  TextMessage textMessage = queueSession.createTextMessage();
                  textMessage.setText("I am from China");

                  queueSender.send(textMessage);

            } catch (NamingException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
            } catch (JMSException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
            }
      }
****************

Now I try to build a test client to receive the message. My codes look as folow:

***********
      public TestReceiveMessage() {
            super();
            System.out.println("this is a client to receive message");
            
            try {
                  // Get QueueConnectionFactory
                  QueueConnection queueConnection = MyMessageUtil.getQueueConnection();
                  // Die konfigurierte Queue holen:
                  Queue queue = MyMessageUtil.getQueue();

                  // Verbindung erzeugen:
                  QueueSession queueSession = queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
                  QueueReceiver queueReceiver = queueSession.createReceiver(queue);

                  // Empfang der Nachricht:
                  Message message = queueReceiver.receive();
                  System.out.println(message);
                  System.out.println("End");                  
            } catch (Exception e) {
                  // TODO: handle exception
            }
      }
****************

But as I run it, but it seems it doesn't go to end. It is waiting...Start Free Trial
 
Loading Advertisement...
 
[+][-]05.31.2008 at 09:11AM PDT, ID: 21684142

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Enterprise Java Beans (EJB), Java Programming Language, J2EE
Sign Up Now!
Solution Provided By: CEHJ
Participating Experts: 1
Solution Grade: A
 
 
 
Loading Advertisement...
20080716-EE-VQP-32 / EE_QW_2_20070628