ActiveMQ

Bom dia galera do Bem

Estou começando a implementar uma solução que irá buscar mensagens em um servidor externo, preciso usar uma conexão com o ActiveMQ usando JAVA, já revirei o google e no próprio site do Active atrás de algum material, mas até o momento não encontrei, tudo que encontrei sempre se refere ao localhost, precisaria de um tutorial ou projeto que faça esta conexão externa.

o que implementei foram 2 classes 1 é o Producer e outra o Consumer, localmente elas funcionam perfeitamente, 1 cria a fila e a outra consome.

Se alguém tiver alguma coisa e possa me dar uma ajuda, desde já ficarei muito grato!

Att. Diego Silva

Para conectar externo você tem que fornecer o IP, simplesmente isso.

Já fiz um monte de testes, não consigo conectar!
estou postando a minha classe abaixo, foi copiada do Site ActiveMQ

import javax.jms.*;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Consumer {

private static String url = ActiveMQConnection.DEFAULT_BROKER_URL;

private static String subject = "Monisat";

public static void main(String[] args) throws JMSException {
   
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
    Connection connection = connectionFactory.createConnection();
    connection.start();

    // Cria sessão para enviar a mensagem
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    Destination destination = session.createQueue(subject);
    
    MessageConsumer consumer = session.createConsumer(destination);
    
    Message message = consumer.receive();

    if (message instanceof TextMessage) {
        TextMessage textMessage = (TextMessage) message;
        System.out.println("Recebido: " + textMessage.getText());
    }
    connection.close();
    }
}

Se puder me dizer onde eu coloco o endereço, usuário e senha, agradeço o amigo.
Att.
Diego Silva

1)-
Assumindo que você já conseguiu subir o ActiveMQ. Para ter certeza, você consegue acessar o console http://0.0.0.0:8161/ ?

Através do console crie uma fila para testes: http://0.0.0.0:8161/admin/queues.jsp

  1. No seu projeto, crie um arquivo jndi.properties, como o seguinte conteúdo:
    java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
    java.naming.provider.url = tcp://localhost:61616
    queue.teste = teste

Seu código para criar o ConnectionFactory é algo como:

InitialContext context = new InitialContext();
ConnectionFactory cf = (ConnectionFactory) context.lookup(“ConnectionFactory”);

ActiveMQConnection.DEFAULT_BROKER_URL

o valor padrão é:

tcp://localhost:61616

Então é só vc alterar para

private static String url = “tcp://ipdoservidor:61616”;

Sim eu consegui subir, deste exemplo que postei existe a classe Producer.java que grava a fila e com o Consumer eu consigo consumir, agora eu tenho que acessar um endereço externo.

Bom dia, está me retornando a seguinte Exception:

Exception in thread "main" javax.jms.JMSException: Network connections can't use topics!

O que pode ser, procurei no Google, mas não encontrei.

Como foi que vc colocou a url?

tcp://integracao-cargo.positronrt.com.br:62616

Como não sei a estrutura ai.
Na rede interna a comunicação funciona?
Tem firewall? Já desabilitou para testar?

Está tudo liberado!

Acho que isso pode lhe ajudar, página 9
http://dcon.com.br/jd.comment/tutorial-jms-activemq.pdf

valeu, vou testar!