1 Reply Latest reply on Jul 22, 2006 10:10 AM by starksm64

    Problem in running the JMS program in JbossMq

      I am completely new to jbossmq I got the probel in running jmms programs. Herer I created the two jms files one is message to que and que to message.



      message to que:->



      package src.jms;
      import javax.jms.*;
      import javax.naming.*;

      import java.util.Hashtable;
      import java.util.Properties;


      public class MessageToQueue
      {
      public static void main(String[] args)
      {

      QueueConnectionFactory cf;
      QueueConnection connection;
      QueueSession session;
      Queue destination;
      QueueSender sender;
      TextMessage message;

      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
      env.put(Context.PROVIDER_URL, "localhost:1199");

      try {
      Context ctx = new InitialContext(env);


      /* ctx = new InitialContext(); */
      cf = (QueueConnectionFactory) ctx.lookup("/ConnectionFactory"); destination = (Queue)ctx.lookup("queue/testQueue");
      connection = cf.createQueueConnection();
      session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      sender = session.createSender(destination);
      message = session.createTextMessage();
      message.setText("Hello World!");

      System.out.println("Sending Message.");
      sender.send(message);

      connection.close();
      System.out.println("Done.");
      }
      catch (NamingException e) {

      e.printStackTrace();
      }

      catch (JMSException e) {

      e.printStackTrace();
      }
      }
      }



      que to message:->



      package src.jms;
      import javax.jms.*;

      import java.util.Hashtable;
      import java.util.Properties;
      import javax.naming.*;

      /**
      * Receives a TextMessage from a Queue
      */
      public class QueueToMessage
      {
      public static void main(String[] args)
      {

      QueueConnectionFactory cf;
      QueueConnection connection;
      QueueSession session;
      Queue destination;
      QueueReceiver receiver;
      TextMessage message;

      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
      env.put(Context.PROVIDER_URL, "172.24.1.226:1199");
      try {
      Context ctx = new InitialContext(env);
      cf = (QueueConnectionFactory) ctx.lookup("/ConnectionFactory");
      destination = (Queue) ctx.lookup("queue/testQueue");

      connection = cf.createQueueConnection();
      session = connection
      .createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      receiver = session.createReceiver(destination);

      System.out.println("Waiting For A Message.");
      connection.start();
      message = (TextMessage) receiver.receive();
      System.out.println("The message was: " + message.getText());

      connection.close();
      System.out.println("Done.");
      }
      catch(JMSException e){
      e.printStackTrace();
      }


      catch(NamingException e){
      e.printStackTrace();
      }
      }
      }



      Here I am geeting th forllowing error as :->




      log4j:WARN No appenders could be found for logger (org.jnp.interfaces.NamingContext).
      log4j:WARN Please initialize the log4j system properly.
      javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
      at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1302)
      at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1382)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
      at javax.naming.InitialContext.lookup(Unknown Source)
      at src.jms.MessageToQueue.main(MessageToQueue.java:30)
      Caused by: java.net.SocketTimeoutException: Receive timed out
      at java.net.PlainDatagramSocketImpl.receive(Native Method)
      at java.net.DatagramSocket.receive(Unknown Source)
      at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1272)
      ... 5 more


      I am trying hard to solve this error but I am not abel to solve this erroe.So please tell me how to run this program.
      and tell em in which xml files I needd to specify the JNDI name for connection factory and where I need to put this line.


      Also tell em how to use the jms1.0 and ant usiing jboss.