You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Johannes Carlén <jo...@yahoo.com> on 2007/12/17 08:56:26 UTC

Resource problem with ActiveMQ

Hi, I have a problem getting ActiveMQ to work with Tomcat6 correctly. 

I have created a minimal web app with a Spring MDP that works great if
I use Eclipse with WTP. Clean tomcat6, clean eclipse. New web project.

However, if I export the app as a war and deploy to an external (also
CLEAN) Tomcat I get this error:

Caused by: javax.naming.NamingException: Cannot create resource
instance
        at
org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceEnvFactory.java:114)
        ...

I can't seem to figure out why it should differ with WTP contra
standalone tomcat. Anyone that can help me out here? (I have a zip file
if anyone is interested) 

I have tried to place my resources in various places: server.xml, in
the context tag in server.xml, in a context.xml in root/meta-inf but
with the same result.

I have also tried to access the resource in a plain servlet without
Spring with the same result. Here are my configuration below:

I have this in my context.xml:
	<Resource name="jms/test/cfTEST001" auth="Container"
		type="org.apache.activemq.ActiveMQConnectionFactory"
		description="JMS Connection Factory"
		factory="org.apache.activemq.jndi.JNDIReferenceFactory"
		brokerURL="tcp://localhost:61616" brokerName="LocalActiveMQBroker"
		useEmbeddedBroker="false" />

	<Resource name="jms/test/TEST001FirstQueue" auth="Container"
		type="org.apache.activemq.command.ActiveMQQueue"
		description="Receiving messages on this queue"
		factory="org.apache.activemq.jndi.JNDIReferenceFactory"
		physicalName="Q1" />

and then in my web.xml:
  <resource-env-ref>
    <resource-env-ref-name>
			jms/test/cfTEST001
		</resource-env-ref-name>
    <resource-env-ref-type>
			javax.jms.QueueConnectionFactory
		</resource-env-ref-type>
  </resource-env-ref>
  <resource-env-ref>
    <resource-env-ref-name>
			jms/test/TEST001FirstQueue
		</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
  </resource-env-ref>

and to try things out I created a servlet with this code:
InitialContext initCtx = new InitialContext();
Context envContext = (Context) initCtx.lookup("java:comp/env");
ConnectionFactory connectionFactory = (ConnectionFactory)
envContext.lookup("jms/test/cfTEST001");
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);

MessageProducer producer = session.createProducer((Destination)
envContext.lookup("jms/test/TEST001FirstQueue"));
TextMessage testMessage = session.createTextMessage();
testMessage.setText("My Message);
producer.send(testMessage);

This works just fine running in Eclipse/WTP but not in plain Tomcat.
Anyone here that can tell me why?

BR
/Johannes



	
	
		
_________________________________________________________
Flyger tiden iväg? Fånga dagen med Yahoo! Mails inbyggda
kalender. Dessutom 250 MB gratis, virusscanning och antispam. Få den på: http://se.mail.yahoo.com

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org