Bom dia,
Alguém pode me ajudar? preciso desenvolver esse trabalho da faculdade…
‘‘o programa responsável pelo envio das mensagens deverá solicitar ao usuário dois
números (inteiros ou decimais), junto a um dos operadores aritméticos básicos (soma,
subtração, multiplicação e divisão). A mensagem (em formato texto) deverá ser
estruturada como segue: “primeiro_número||operador||segundo_número”;
as mensagens deverão ser enviadas para uma fila;
o programa responsável pela recepção das mensagens deverá decompor o texto
recebido, avaliar a expressão e exibir o resultado da operação;’’
Obrigado!
e no que a gente pode te ajudar ?
package teste_jms;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.QueueSession;
import javax.jms.QueueReceiver;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
//Classe que consome mensagens a partir de uma fila.
public class Consumidor {
// Método principal.
public static void main(String args[]) throws Exception {
// Propriedades para configuração do ambiente de execução.
Properties ambiente = new Properties();
ambiente.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
ambiente.put(Context.PROVIDER_URL, "tcp://localhost:61616");
ambiente.put("queue.filaDeMensagens", "FilaDeMensagens");
// Contexto inicial para o ambiente de execução.
InitialContext contexto = new InitialContext(ambiente);
// Procura pela fila de mensagens.
Queue fila = (Queue)contexto.lookup("filaDeMensagens");
// Procura pela "fábrica" de conexões às filas de mensagem.
QueueConnectionFactory fabricaDeConexoes = (QueueConnectionFactory)contexto.lookup("QueueConnectionFactory");
// Cria uma conexão à fila.
QueueConnection conexao = fabricaDeConexoes.createQueueConnection();
// Cria uma sessão de acesso à fila.
QueueSession sessao = conexao.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
// Cria objeto que permite rcuperar mensagens a partir da fila.
QueueReceiver consumidor = sessao.createReceiver(fila);
// Inicia a conexão.
conexao.start();
// Recebe uma mensagem.
TextMessage mensagem = (TextMessage)consumidor.receive();
// Exibe a mensagem recebida.
System.out.println("Mensagem recebida: " + mensagem.getText());
// Fecha a conexão.
conexao.close();
}
}
package teste_jms;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import org.joda.time.Instant;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.management.Query;
import javax.jms.QueueSender;
import javax.jms.DeliveryMode;
import javax.jms.QueueSession;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
// Classe que produz mensagens e as envia para uma fila.
public class Produtor {
// Método principal.
public static void main(String[] args) throws Exception {
// Propriedades para configuração do ambiente de execução.
Properties ambiente = new Properties();
ambiente.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
ambiente.put(Context.PROVIDER_URL, "tcp://localhost:61616");
ambiente.put("queue.filaDeMensagens", "FilaDeMensagens");
// Contexto inicial para o ambiente de execução.
InitialContext contexto = new InitialContext(ambiente);
// Procura pela fila de mensagens.
Query fila = (Queue)contexto.lookup("filaDeMensagens");
// Procura pela "fábrica" de conexões às filas de mensagem.
QueueConnectionFactory fabricaDeConexoes = (QueueConnectionFactory)contexto.lookup("QueueConnectionFactory");
// Cria uma conexão à fila.
QueueConnection conexao = fabricaDeConexoes.createQueueConnection();
// Cria uma sessão de acesso à fila.
QueueSession sessao = conexao.createQueueSession(false, Session.DUPS_OK_ACKNOWLEDGE);
// Cria objeto que permite enviar mensagens à fila.
QueueSender produtor = sessao.createSender(fila);
produtor.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// Cria mensagem com a data/hora atual.
TextMessage mensagem = sessao.createTextMessage(Instant.now().toString());
// Envia a mensagem.
produtor.send(mensagem);
System.out.println("Mensagem enviada: " + mensagem.getText());
// Fecha a conexão.
conexao.close();
}
}