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.