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!
Para conectar externo você tem que fornecer o IP, simplesmente isso.
dlsilva1812
Já fiz um monte de testes, não consigo conectar!
estou postando a minha classe abaixo, foi copiada do Site ActiveMQ
importjavax.jms.*;importorg.apache.activemq.ActiveMQConnection;importorg.apache.activemq.ActiveMQConnectionFactory;publicclassConsumer{privatestaticStringurl=ActiveMQConnection.DEFAULT_BROKER_URL;privatestaticStringsubject="Monisat";publicstaticvoidmain(String[]args)throwsJMSException{ConnectionFactoryconnectionFactory=newActiveMQConnectionFactory(url);Connectionconnection=connectionFactory.createConnection();connection.start();// Cria sessão para enviar a mensagemSessionsession=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);Destinationdestination=session.createQueue(subject);MessageConsumerconsumer=session.createConsumer(destination);Messagemessage=consumer.receive();if(messageinstanceofTextMessage){TextMessagetextMessage=(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
N
norbAns
1)-
Assumindo que você já conseguiu subir o ActiveMQ. Para ter certeza, você consegue acessar o console http://0.0.0.0:8161/ ?
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”);
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.
dlsilva1812
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.
S
shuttner
Como foi que vc colocou a url?
dlsilva1812
tcp://integracao-cargo.positronrt.com.br:62616
S
shuttner
Como não sei a estrutura ai.
Na rede interna a comunicação funciona?
Tem firewall? Já desabilitou para testar?