Thanks James, indeed this was the problem. I previously had the jms.jar included in my app's .war file, but I thought that it might have been causing the issue so I took it out yesterday, but the problem was still occuring. Lo and behold I did a search of my tomcat directories and I found the jms.jar cached in that application's work directory (even though it was no longer in the .war). I blew it away, bounced tomcat and all is good now.
Thanks for your help, -Rob ----- Original Message ---- From: James Strachan <[EMAIL PROTECTED]> To: users@activemq.apache.org Sent: Thursday, June 14, 2007 8:34:56 PM Subject: Re: ClassCastException w/ tomcat & JND Sounds like you've multiple jms API jars causing the ClassCastException (ActiveMQConnectionFactory definitely is-a ConnectionFactory :) On 6/15/07, Rob Terpilowski <[EMAIL PROTECTED]> wrote: > Hello active mq users , > I am running into the following issue that was posted on the mailing list in > January, but for which no > response was posted. > > I have the following configuration on my system > > tomcat 5.5 > > java 1.5.09 > > activemq jars version 4.1.1 > > The active MQ broker is started , from the application . > > the code for it is > > public void contextInitialized(ServletContextEvent arg0) { > > try{ > > System.out.println("Starting ActiveMQ Broker Service..."); > > broker.addConnector("tcp://localhost:61616?trace=true"); > > broker.start(); > > System.out.println("Active MQ Broker Started at local host port 61616"); > > }catch(Exception e){ > > System.err.println(e.getMessage()); > > e.printStackTrace(); > > throw new RuntimeException(e); > > } > > } > > > > 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 above. > > 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. > > The active MQ jars are located in <catalina-home>/server/lib and I tried > putting them > under <catalina-home>/shared/lib as well with no difference > > thank you, > -rob > > > > > > ____________________________________________________________________________________ > Don't get soaked. Take a quick peak at the forecast > with the Yahoo! Search weather shortcut. > http://tools.search.yahoo.com/shortcuts/#loc_weather -- James ------- http://macstrac.blogspot.com/ ____________________________________________________________________________________ Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more. http://mobile.yahoo.com/go?refer=1GNXIC