Envio e recepção de mensagens via JMS

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();
}

}