estoy tratando de crear simplemente conectar con ActiveMQ utilizando JNDI. Uso de ActiveMQ a través de JNDI
que tienen
cola llamado 'example.A'.
Según ActiveMQ documentation touching JNDI, si quiero utilizar ConectionFactories y Colas (Temas) a través de JNDI, tengo que colocar el archivo jndi.properties en mi classpath. Según tengo entendido, es activemq ruta de clase% directorio%/conf activemq por defecto. No lo he cambiado Así que tienen esta propiedad para mi cola:
queue.MyQueue = example.A
He creado la clase cliente en java para ActiveMQ que utiliza JNDI de la siguiente manera:
Properties jndiParameters = new Properties() ; jndiParameters.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); jndiParameters.put(Context.PROVIDER_URL, "tcp://localhost:61616"); Context context = new InitialContext(jndiParameters); ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("ConnectionFactory"); Queue queue = (Queue) context.lookup("MyQueue");
pero no puede encontrar mi cola, se lanza una excepción: javax.naming.NameNotFoundException: MyQueue
¿Dónde están mis misstakes?
Tengo un problema similar, puedo configurar la dirección URL JNDI y fábrica de conexiones, pero no puedo proporcionar propiedades adicionales. De esta forma, parece que el punto final de la cola no está definido. Funciona si uso dynamicQueue/prueba, pero debe también ser posible abordar destinos staticly nombre? – eckes