Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

Dúvida jndi

Não consigo subir o activeMQ por dentro do Eclipse, segue configuração.

O endereço: [http://localhost:8161/admin/queues.jsp] é inválido

java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory

# Use the following property to configure the default connector
#java.naming.provider.url = tcp://hostname:61616
java.naming.provider.url = vm://localhost

# Use the following property to specify the JNDI name the connection factory
# should appear as. 
#connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry

# Register some queues in JNDI using the form:
#   queue.[jndiName] = [physicalName]
queue.financeiro = fila.financeiro

# Register some topics in JNDI using the form:
#   topic.[jndiName] = [physicalName]
topic.MyTopic = example.MyTopic
13 respostas

Retorno do Console

 INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
 INFO | PListStore:[C:\Projetos\JMS\activemq-data\localhost\tmp_storage] started
 INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[C:\Projetos\JMS\activemq-data\localhost\KahaDB]
 INFO | KahaDB is version 6
 INFO | Recovering from the journal @1:56583
 INFO | Recovery replayed 912 operations from the journal in 0.069 seconds.
 INFO | Apache ActiveMQ 5.13.0 (localhost, ID:Ronney-56211-1494336108845-0:1) is starting
 INFO | Apache ActiveMQ 5.13.0 (localhost, ID:Ronney-56211-1494336108845-0:1) started
 INFO | For help or more information please see: http://activemq.apache.org
 INFO | Connector vm://localhost started

Oi Ronney,

a saída na console indica que ActiveMQ subiu. Quando acontece o erro?

abs, Nico

No endereço do admin no browser, dá como endereço inválido

Só consigo fazer funcionar se subir o ActiveMQ por fora do Eclipse

# Use the following property to configure the default connector
java.naming.provider.url = tcp://localhost:61616
#java.naming.provider.url = vm://localhost

Oi Ronney,

o web console só sobe ao iniciar o activemq pelo script (pois precisa iniciar o jetty, outro servidor).

vc está rodando o activemq no modo embutido (embedded)?

abs

Pensei que com a configuração abaixo eu pudesse fazer tudo por dentro do Eclipse.

java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory

# Use the following property to configure the default connector
java.naming.provider.url = tcp://localhost:61616
#java.naming.provider.url = vm://localhost

# Use the following property to specify the JNDI name the connection factory
# should appear as. 
#connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry

# Register some queues in JNDI using the form:
#   queue.[jndiName] = [physicalName]
queue.financeiro = fila.financeiro

# Register some topics in JNDI using the form:
#   topic.[jndiName] = [physicalName]
topic.MyTopic = example.MyTopic

Oi Ronney,

Se estiver usando o Spring basta importar o xml do jetty para rodar o web console através do import no XML do Spring:

<import resource="${activemq.base}/conf/jetty.xml" />

http://activemq.apache.org/web-console.html

abs

não estou usando o Spring, pois não localizei onde o curso dá essa orientação

Oi Ronney,

quando vc roda o activemq na linha de comando já sobe um spring container automaticamente, por isso nao precisa nada da configuração.

abs

Tem como subir o activeMQ apenas por dentro do Eclipse? Parece que de alguma forma, apenas o fato de eu colocar o jndi.properties dá erro na localização da classe principal do projeto

Oi Ronney,

tem como mostrar o seu código ou compartilhar no gist/github?

abs

package br.com.caelum.jms;

import java.util.Scanner;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.naming.InitialContext;

public class TestConsumidor {

    @SuppressWarnings("resource")
    public static void main(String[] args) throws Exception {
        InitialContext context = new InitialContext();
        ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory");

        Connection connection = factory.createConnection();
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        Destination fila = (Destination) context.lookup("financeiro");
        MessageConsumer consumer = session.createConsumer(fila);

        Message message = consumer.receive(2000);

        System.out.println("Recebendo msg: " + message);

        new Scanner(System.in).nextLine();

        session.close();
        connection.close();
        context.close();
    }

}
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory

# use the following property to configure the default connector
java.naming.provider.url = tcp://localhost:61616

# use the following property to specify the JNDI name the connection factory
# should appear as. 
#connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry

# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.financeiro = fila.financeiro


# register some topics in JNDI using the form
# topic.[jndiName] = [physicalName]
topic.MyTopic = example.MyTopic
solução!

Oi Ronney,

eu acho que ainda não estou entendendo o seu problema :(

Vc pode inicializar o activemq dentro do seu projeto, mas o código que vc postou representar apenas o cliente/consumidor. Para esse código funcionar, vc precisa inicializar o activemq antes.

No curso é apresentando como rodar o activemq na linha de comando. Quando vc diz "dentro do eclipse" vc quer inicializar activemq como se fosse um tomcat no eclipse? Ou gostaria de subir activemq programaticamente?

Se vc gostaria de inicializar o activemq programaticamente dá uma olhada nesse código:

http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html

desculpe se eu ainda nao consegui sanar a sua dúvida.

abs