HELP :::::::: ctx.lookup("ConnectionFactory") NULLPOINTEXCEP
ammon Feb 18, 2004 7:24 AMI am passing from weblogic to jboss 3.2.3. I am meeting problems in using JMS. from the client(applet) I have the following code:
package clients.common.messaging;
import clients.common.util.AppletProperties;
import clients.common.debug.Debug;
import javax.jms.JMSException;
import javax.jms.Session;
import javax.naming.NamingException;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.*;
import java.awt.event.ActionListener;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicConnection;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.jms.Topic;
import javax.jms.MessageListener;
import javax.jms.ExceptionListener;
import javax.jms.TextMessage;
import clients.applets.zones.Zones;
import clients.common.swing.JMessageBar;
/**
* Ricevitore dei messaggi JMS.
* Descrizione:
* Ricevitore dei messaggi JMS.
* La classe riceve e inoltra il messaggio ricevuto al JMSMessaggeManager.
*
*
* @version 1.0
**/
public class JMSMessageReceiver
implements MessageListener, ExceptionListener {
String connectFactory="java:/XAConnectionFactory";
public JMSMessageReceiver(String topicName, AppletProperties appletProperties,
JMSMessagesManager jmsMessagesManager) {
this.appletProperties = appletProperties;
this.jmsMessagesManager = jmsMessagesManager;
urlProvider = appletProperties.getJMSProvider();
ctxInizialeWeblogic = appletProperties.getCtxInizialeWeblogic();
this.topicName = topicName;
try {
InitialContext ic = getInitialContext(urlProvider);
init(ic, topicName);
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* Message listener interface.
* @param msg message
*
*/
public void onMessage(javax.jms.Message msg) {
try {
String message;
if (msg instanceof TextMessage) {
message = ( (TextMessage) msg).getText();
jmsMessagesManager.addMessages(message, topicName);
}
else {
message = msg.toString();
}
}
catch (JMSException jmse) {
Debug.printWarning("Errore durante la ricezione del messaggio.");
jmse.printStackTrace();
}
}
public void onException(JMSException exception) {
Debug.printWarning("JMSServer is go down.");
if (appletProperties.getApplet() instanceof Zones) {
Zones zones = (Zones)appletProperties.getApplet();
zones.getJMessageBar().setConnectionStauts(JMessageBar.STATUS_DISCONNECTED);
}
}
/**
* Creates all the necessary objects for sending
* messages to a JMS topic.
*
* @param ctx JNDI initial context
* @param topicName name of topic
* @exception NamingException if problem occurred with JNDI context interface
* @exception JMSException if JMS fails to initialize due to internal error
*/
public void init(Context ctx, String topicName) {
try{
Object tmp = ctx.lookup("ConnectionFactory");
tconFactory = (TopicConnectionFactory) tmp;
tcon = tconFactory.createTopicConnection();
tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
topic = (Topic) ctx.lookup(topicName);
tsubscriber = tsession.createSubscriber(topic);
tsubscriber.setMessageListener(this);
tcon.setExceptionListener(this);
tcon.start();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* Closes JMS objects.
*
* @exception JMSException if JMS fails to close objects due to internal error
*/
public void close() throws JMSException {
tsubscriber.close();
tsession.close();
tcon.close();
}
private static InitialContext getInitialContext(String url) throws NamingException {
String jndiUrl = "jnp://xxxxx:1099";
java.util.Properties props = new Properties();
props.setProperty(Context.PROVIDER_URL, jndiUrl);
props.setProperty(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.setProperty (Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
try {
return new InitialContext(props);
}
catch (Exception e) {
connected = false;
return null;
}
}
public boolean isConnected() {
return connected;
}
private ActionListener receiverMessageListener; // listener per la ricezione dei messaggi.
private AppletProperties appletProperties;
// proprietà dall'applet.
/**
* @label addMessage (xml)
*/
private JMSMessagesManager jmsMessagesManager; // Message manager (Classe a cui vengono rigirati i messaggi letti.)
public final static String JNDI_FACTORY = "org.jnp.interfaces.NamingContextFactory";//cambiato
public final static String JMS_FACTORY = "TopicConnectionFactory";
private String topicName; // Nome dala topic su cui arrivano i messaggi
private String urlProvider; // Provider T3
private String ctxInizialeWeblogic;
private TopicConnectionFactory tconFactory;
private TopicConnection tcon;
private TopicSession tsession;
private TopicSubscriber tsubscriber;
private Topic topic;
private static boolean connected = true;
private boolean quit = false;
}
When I make the lookup with "ConnectionFactory" I have a NullPointException. But I have always NullPointException also with XAConnectionFactory, OIL...
I must declare something in jboss-web.xml or jboss.xml. You have the patience to explain what I must to make .....
tanks ...