Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Trying to write a jms client to receive as message

 
Anthony Smith
Ranch Hand
Posts: 285
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am trying to write a JMS client and this is all the known info that I have...

JNDI Context URL: tibjmsnaming://199.82.204.23:7222
JNDI Context Factory: com.tibco.tibjms.naming.TibjmsInitialContextFactory
Queue Connection Factory : QueueConnectionFactory
QueueName : ESE.LAC.MSGS
JMS Property Names:
CARRIER_OID,TRACK_TYPE,ORIGIN_COUNTRY_CODE,DEST_COUNTRY_CODE

I tried to get it started, but really do nto know what to do:


import javax.naming.*;
import javax.jms.*;

public class JMS

{

String jndiContextUrl = "tibjmsnaming://199.82.204.23:7222";
String jndiContextFactory = "com.tibco.tibjms.naming.TibjmsInitialContextFactory";
String queueConnectionFactory = "QueueConnectionFactory";
String queueName = "ESE.LAC.MSGS";
private QueueConnectionFactory qFactory;
private QueueConnection qcon;
private QueueSession qsession;
private QueueSender qsender;
private Queue queue;
private TextMessage msg;


public JMS()

{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, jndiContextFactor);
env.put(Context.PROVIDER_URL, jndiContextUrl);

InitialContext jndiContext = new InitialContext(env);

qFactory = (QueueConnectionFactory) jndiContext.lookup(queueConnectionFactory);

queue = (Queue) jndiContext.lookup(queueName);

qreceiver = qsession.createReceiver(queue);
qreceiver.setMessageListener(this);

qcon.start();

}
}
 
Brian Tinnel
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A couple of things I noticed:

You never created a qsession. So I would expect the line that has qreceiver = qsession.createReceiver(queue) would get an NPE. For just playing around a simple session is probably okay. Like:


By calling setMessageListener(this) you are saying that the JMS class is a message listener, but it does not implement the MessageListener interface. Do that and you will need to write an onMessage method that will be called when a message arrives.

Hopefully, that is enough info to get you going.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic