I search around to find my error and find that you should use ActiveMQConnection. Now i can start the connection but have a same problem will trying to createReceiver. See the code below (previous + modification) :
public class ActiveMQBrokerStartListener implements ServletContextListener { BrokerService broker = new BrokerService(); ActiveMQConnection aqc = null ; public void contextInitialized(ServletContextEvent arg0) { try{ broker.addConnector("tcp://localhost:61616?trace=true&wireFormat.maxInactivityDuration=-1"); broker.start(); InitialContext ic = new InitialContext(); Context ctx = (Context) ic.lookup("java:comp/env"); ActiveMQConnectionFactory acf = (ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory"); aqc = (ActiveMQConnection)acf.createQueueConnection(); aqc.start() ; ActiveMQQueueSession qs = (ActiveMQQueueSession)aqc.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE) ; ActiveMQQueue q = (ActiveMQQueue)ctx.lookup("jms/batch"); ActiveMQQueueReceiver aqr = (ActiveMQQueueReceiver)qs.createReceiver(q) ; // ERROR LINE aqr.setMessageListener(new BatchReceiverTechnicalService()) ; }catch(Exception e){ System.err.println(e.getMessage()); e.printStackTrace(); throw new RuntimeException(e); } } public void contextDestroyed(ServletContextEvent arg0) { try{ aqc.close() ; //qc.close() ; broker.stop(); }catch(Exception e){ System.err.println(e.getMessage()); e.printStackTrace(); throw new RuntimeException(e); } } } What is wrong ?? Why i can not create a Receiver ? Thanks in advance Regards, Denez denez wrote: > > Hi all, > > I would like to start a broker and Activate a MessageListener on startup > of my webApp. > I made all the needed configuration to have a ServletContextListener. > I can debug inside my ServletContextListener implementation named : > ActiveMQBrokerStartListener. > You can see the code of it below : > > public class ActiveMQBrokerStartListener implements ServletContextListener > { > BrokerService broker = new BrokerService(); > QueueConnection qc = null ; > > public void contextInitialized(ServletContextEvent arg0) { > try{ > > broker.addConnector("tcp://localhost:61616?trace=true&wireFormat.maxInactivityDuration=-1"); > broker.start(); > InitialContext ic = new InitialContext(); > Context ctx = (Context) ic.lookup("java:comp/env"); > ActiveMQConnectionFactory cf = > > ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory"); > qc = (QueueConnection) cf.createQueueConnection(); > qc.start() ; > QueueSession qs = qc.createQueueSession(false, > Session.CLIENT_ACKNOWLEDGE) ; > Queue q = (Queue)ctx.lookup("jms/batch"); > QueueReceiver qr = qs.createReceiver(q) ; > qr.setMessageListener(new Receiver()) ; > }catch(Exception e){ > System.err.println(e.getMessage()); > e.printStackTrace(); > throw new RuntimeException(e); > } > } > > public void contextDestroyed(ServletContextEvent arg0) { > try{ > qc.close() ; > broker.stop(); > }catch(Exception e){ > System.err.println(e.getMessage()); > e.printStackTrace(); > throw new RuntimeException(e); > } > } > } > > I place a breakpoint on the line that should create a QueueSession. > But never enter in it. If i place a breakpoint on the ligne that > createQueueConnection i have it. > So the problem is on the qc.start() ; > If i inspect the QueueConnection i can see that the started=false as > normal. > > What is wrong on my code ? > Could you help me, or tell me what you think about this ? > > Regards, > Denez > -- View this message in context: http://www.nabble.com/Error-on-starting-QueueConnection-tf4278515s2354.html#a12178653 Sent from the ActiveMQ - User mailing list archive at Nabble.com.