It looks like you are looking up the wrong name, shouldn't it be "jms/TopicConnectionFactory"? Also try actually printing out what the object is that you've found.
Given the problems you're having using JNDI, it might be worth just replacing all the JNDI crap with just one line... ConnectionFactory factory = new ActiveMQConnection() :) On 1/19/07, Suchitha Koneru (sukoneru) <[EMAIL PROTECTED]> wrote:
Hello active mq users , I have the following configuration on my system tomcat 5.5 java 1.5.09 In server.xml , I placed the JNDI resources as follows <GlobalNamingResources> <Resource name="jms/TopicConnectionFactory" auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="tcp://localhost:61716" brokerName="LocalActiveMQBroker"/> <Resource name="jms/Topic" auth="Container" type="org.apache.activemq.command.ActiveMQTopic" description="sample Topic" factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="FOO.BAR"/> </GlobalNamingResources> I have a web app called UI , I am trying to access these global jndi recources from this web app, Hence the context.xml for this web app has the following <Context reloadable="true"> <ResourceLink name="ConnectionFactory" global="jms/TopicConnectionFactory" type= "org.apache.activemq.ActiveMQConnectionFactory" /> <ResourceLink name="PNMTopic" global="jms/Topic" type= "org.apache.activemq.command.ActiveMQTopic" /> </Context> The subsciber class in the UI context is as follows public class PNMSubscriber { TopicConnection tConn ; TopicConnectionFactory tFactory ; Topic pnmTopic; ActiveMQTopicSession pnmSession ; public PNMSubscriber(){ try{ InitialContext initialContext = new InitialContext(); Context envContext = (Context) initialContext.lookup("java:comp/env"); tFactory = (TopicConnectionFactory)envContext.lookup("ConnectionFactory"); tConn = tFactory.createTopicConnection(); pnmSession = (ActiveMQTopicSession) tConn.createTopicSession(true, Session.AUTO_ACKNOWLEDGE); pnmTopic = (Topic)envContext.lookup("PNMTopic"); pnmSubscriber = pnmSession.createSubscriber(pnmTopic); }catch(Exception e){ e.printStackTrace(); } } I get a class cast exception as follows java.lang.ClassCastException: org.apache.activemq.ActiveMQConnectionFactory at com.cpnm.common.messaging.PNMSubscriber.<init>(PNMSubscriber.java:40) The exception is raised , at the following line , in the code tFactory = (TopicConnectionFactory)envContext.lookup("ConnectionFactory"); I tried casting the object to "ActiveMQConnectionFactory" , I still get the same exception. I think, iam missing something in the configuration, please let me know, if I need to add anything else. Please help me out !! thank you, Suchitha.
-- James ------- http://radio.weblogs.com/0112098/