[jboss-user] [JBoss Messaging] - Re: problems connecting to a Queue

jeuk do-not-reply at jboss.com
Tue Mar 18 11:34:40 EDT 2008


still seem to have a problem I'm afraid.. I can now connect to the queue and send a message with
    public boolean SendMessage(String server)
  |     {
  |         Properties props  = new Properties();
  |         props.setProperty( "java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory" );
  |         props.setProperty( "java.naming.provider.url", server  );
  |         props.setProperty( "java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces" );
  |         System.out.println("Got Props, connecting to " + server);
  |         try{
  |             String sQueueName = "queue/tnb/inbound";
  |             InitialContext ic = new InitialContext(props);
  |             Queue queue = (Queue) ic.lookup(sQueueName);
  |             QueueConnectionFactory factory = (QueueConnectionFactory)ic.lookup("ConnectionFactory");
  |             QueueConnection connection = factory.createQueueConnection();
  |             QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
  |             QueueSender qs = session.createSender(queue);
  |             TextMessage m = session.createTextMessage();
  |             m.setText("Hello world!");
  |             qs.send(m);
  |             qs.close();
  |             session.close();
  |             connection.close();
  |         }
  |         catch(Exception e)
  |         {
  |             e.printStackTrace();
  |         }
  |         return true;
  |     }

but when I try to read messages I get nothing
    public boolean ReceiveMessage(String server)
  |     {
  |         Properties props  = new Properties();
  |         props.setProperty( "java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory" );
  |         props.setProperty( "java.naming.provider.url", server  );
  |         props.setProperty( "java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces" );
  |         try{
  |             String sQueueName = "queue/tnb/inbound";
  |             InitialContext ic = new InitialContext(props);
  |             Queue queue = (Queue) ic.lookup(sQueueName);
  |             QueueConnectionFactory factory = (QueueConnectionFactory)ic.lookup("ConnectionFactory");
  |             QueueConnection connection = factory.createQueueConnection();
  |             QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
  |             QueueReceiver qr = session.createReceiver(queue);
  |             Message m = qr.receive(3000);
  |             if(m!=null)
  |             {
  |                 if(m instanceof TextMessage)
  |                 {
  |                     TextMessage tm = (TextMessage) m;
  |                     System.out.println("Message. " + tm.getText());
  |                 }
  |             }
  |             else
  |             {
  |                 System.out.println("No message received.");
  |             }                                                        
  |             qr.close();
  |             connection.close();
  |         }catch(Exception e)
  |         {
  |             e.printStackTrace();
  |         }
  |         return true;
  |     }
  | 

I can see the messages in the JNDI viewer, so I know they're being sent to the queue.
Any ideas?

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

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



More information about the jboss-user mailing list