tomcat 6.0.20 activemq 5.3.0 the following are in tomcat/lib : activemq-all geronimo j2ee management 1.0 geronimo jms 1.1 geronimo jta 1.0.1B commons httpclient 3.1
this is in a portlet running in openportal within tomcat web.xml ---------- <resource-ref> <res-ref-name>jms/ConnectionFactory</res-ref-name> <res-type>org.apache.activemq.ActiveMQConnectionFactory</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <res-ref-name>jms/MyAppQueue</res-ref-name> <res-type>org.apache.activemq.command.ActiveMQQueue</res-type> <res-auth>Container</res-auth> </resource-ref> context.xml ---------- <Context> <Resource name="jms/ConnectionFactory" 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/MyAppQueue" auth="Container" type="org.apache.activemq.command.ActiveMQQueue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="MyApp.queue" /> </Context> the code ------ public void sendMessageToQueue(String submitId, String capabilitiesURL) { logger.debug("sendMessageToQueue start"); Context jndiContext = null; ConnectionFactory connectionFactory = null; Connection connection = null; Session session = null; Destination destination = null; MessageProducer producer = null; String destinationName = "MyApp"; TextMessage message = null; try { Context initCtx = new InitialContext(); jndiContext = (Context) initCtx.lookup("java:comp/env"); connectionFactory = (ConnectionFactory) jndiContext.lookup("jms/ConnectionFactory"); destination = (Destination) jndiContext.lookup("jms/MyAppQueue"); connection = connectionFactory.createConnection(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); producer = session.createProducer(destination); message = session.createTextMessage(); // message.setText(submitId+"|"+capabilitiesURL); message.setStringProperty("submitId", submitId); message.setStringProperty("capabilitiesURL", capabilitiesURL); logger.debug("Message for queue : "+message.getText()); producer.send(message); } catch(NamingException e) { logger.debug("Naming exception : ",e); } catch(JMSException e) { logger.debug("Message exception : ",e); } finally { if(connection != null) { try { logger.debug("connection.toString() - "+connection.toString()); connection.close(); } catch(JMSException e) { logger.debug("Failed to close - ",e); } } } logger.debug("sendMessageToQueue end"); } the problem - the line -> connectionFactory = (ConnectionFactory) jndiContext.lookup("jms/ConnectionFactory"); is causing javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceF actory.java:143) I have spent roughly 10 hours on this now. I have searched all of Google, Nabble, activemq/tomcat.apache.org ... all I can find is people more or less asking "what have I done wrong" but I have not found anyone offering a solution. The best documentation I can find on apache.org contains the phrase "This is completely untested but should work" ... and it does not. At one point I thought I was nearing success by doing the "Look Inside this Book" on Amazon.com looking at "Tomcat: The Definitive Guide (Paperback)" but ultimately that did not work either. My Junit tests (in Eclipse using jndi.properties) all work with no problem. When I try doing this within tomcat w/ web.xml and context.xml it fails horribly. Any input would be desperately appreciated. -- View this message in context: http://old.nabble.com/tomcat%2Bjndi%2Bactivemq--namingexception-cannot-create-resource-instance-tp27788969p27788969.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.