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

public class jms_client implements MessageListener {

	public void onMessage(Message msg) {
		System.out.println("Get something");
		try {
			if(msg instanceof TextMessage) {
				TextMessage tmsg = (TextMessage)msg;
				System.out.println("From on message: " + tmsg.getText());
			}
		} catch (JMSException jmse) {
			jmse.printStackTrace();
		}
	}
	
  public static void main(String[] args) {
	System.out.print("Listening...");
    QueueConnectionFactory qcf = null; 
    Queue queue = null;

    Properties properties = new Properties();
    properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    properties.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    properties.setProperty(Context.PROVIDER_URL,"jnp://localhost:1099");
    
    try {
      //InitialContext ctx = new InitialContext(env);
      InitialContext ctx = new InitialContext(properties);
      Object tmp = ctx.lookup("ConnectionFactory");
      qcf = (QueueConnectionFactory) tmp;
      tmp = ctx.lookup("queue/myTopic");
      queue = (Queue) tmp;
      ctx.close();
    } catch (javax.naming.NamingException ne) {
      System.out.println("Exception: " + ne.getMessage());
      System.exit(1);
    }
    
    try {
    QueueConnection conn = qcf.createQueueConnection();
    QueueSession qsession = conn.createQueueSession(false, 
								QueueSession.AUTO_ACKNOWLEDGE);
	
	conn.start();
	
	QueueReceiver receiver = qsession.createReceiver(queue);
	
	jms_client recvObj = new jms_client();
	
	System.out.println("Listening on queue");
	receiver.setMessageListener(recvObj);
	
	//Message msg = receiver.receive();
	
	} catch (JMSException ex) {
		System.out.println("Error: " + ex.getMessage());
	}
	
	System.out.println("Program end");
  }
}

