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.