Client requesting the same value 2 times

1

I'm doing a distributed system, and the client is asking for the same value multiple times.

Follow class Cliente :

import java.awt.HeadlessException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import javax.swing.JOptionPane;


public class Cliente {
    public static void main(String[] args) throws HeadlessException, NumberFormatException, RemoteException {

        Interface controlador = null;


// ------------ - - - - - - - - - -  -  -  -  -  -   - Inicio: Escolha de Servidor ------------ - - - - - - - - - -  -  -  -  -  -   - 

        int escolha = 0;
        do {

            try {

                escolha = Integer.parseInt(JOptionPane.showInputDialog(null, "Menu:\n\n  Digite 1 para se conectar ao Servidor 1.\n\n  Digite 2 para se conectar ao Servidor 2.\n\n  Digite 3 para sair da aplicação.", "Escolha de Servidor", JOptionPane.PLAIN_MESSAGE));
                System.out.println(escolha);


                if (escolha == 1) {                 
                    controlador = (Interface)Naming.lookup("//localhost/rmi");// Rmiregistry
                } else if(escolha == 2) {
                    controlador = (Interface)Naming.lookup("//localhost/rmi");// Rmiregistry
                } else if(escolha == 3) {
                    JOptionPane.showMessageDialog(null, "Saindo da aplicação.", "EXIT", JOptionPane.WARNING_MESSAGE);
                    System.exit(2);
                } else {
                    JOptionPane.showMessageDialog(null, "Por favor, digite apenas 1 ou 2", "Opção Inválida", JOptionPane.ERROR_MESSAGE);
                }

            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Por favor, entre apenas com números (No caso: 1, 2 e 3).", "Opção Inválida", JOptionPane.ERROR_MESSAGE);
                //System.err.println("Problemas de localização! " + e);
                e.printStackTrace();
                //System.exit(2);
            } 
        }   while(escolha < 1 || escolha > 2);

// ------------ - - - - - - - - - -  -  -  -  -  -   - Fim: Escolha de Servidor ------------ - - - - - - - - - -  -  -  -  -  -   - 




// ------------ - - - - - - - - - -  -  -  -  -  -   - Inicio: Cliente (1)  ------------ - - - - - - - - - -  -  -  -  -  -   -


        if(controlador.clientRole() == 0){

            try {
                while(true) {
                    controlador.incrementarCliente();
                    String comprimento = JOptionPane.showInputDialog(null, "Digite o valor do comprimento:", "CLIENTE (1)", JOptionPane.PLAIN_MESSAGE);
                    controlador.setComprimento(Float.parseFloat(comprimento));
                    JOptionPane.showMessageDialog(null, "Valor do Comprimento: "+controlador.getComprimento());

                    System.out.println("Aguardando parametros do segundo cliente.");
                    JOptionPane.showMessageDialog(null, "Aguardando parametros do segundo cliente.", "CLIENTE (1)", JOptionPane.INFORMATION_MESSAGE);

                    while(true) {                               
                        if(controlador.getLargura() == -9999) {
                        } else {
                            String Altura = JOptionPane.showInputDialog(null, "Digite o valor da Altura", "CLIENTE (1)", JOptionPane.PLAIN_MESSAGE);
                            controlador.setAltura(Float.parseFloat(Altura));
                            JOptionPane.showMessageDialog(null, "Valor do Comprimento: "+controlador.getAltura());              
                            break;
                        }
                    }       

                    //JOptionPane.showMessageDialog(null,"Valor da área: "+ Float.toString(controlador.getArea()));
                    JOptionPane.showMessageDialog(null,"Valor da área: ");//+ ((controlador.getBaseMaior() + controlador.getBaseMenor()) * controlador.getAltura()) /2);

                    controlador.resetar();

                    try {
                        String cont1 = JOptionPane.showInputDialog(null, "Deseja continuar? \n Digite 1 para sim \n Digite 0 para não", "CLIENTE (1)", JOptionPane.PLAIN_MESSAGE);
                        controlador.setContinua1(Integer.parseInt(cont1));
                    if (controlador.getContinua1() == 1){
                    }else if (controlador.getContinua1() == 0){
                        controlador.incrementarCliente();
                        break;
                    } else {
                        JOptionPane.showMessageDialog(null,"Valor invalido... saindo", "CLIENTE (2)" , JOptionPane.INFORMATION_MESSAGE);
                        controlador.incrementarCliente();
                        break;
                    }
                    } catch (Exception e){
                        JOptionPane.showMessageDialog(null, "Por favor, entre apenas com números (No caso: 0 ou 1).", "Opção Inválida", JOptionPane.ERROR_MESSAGE);
                    }
                }



            } catch (RemoteException re) {
                System.err.println("Problemas com a chamada remota! " + re);
                re.printStackTrace();
                System.exit(3);
            }
// ------------ - - - - - - - - - -  -  -  -  -  -   - Fim: Cliente (1) ------------ - - - - - - - - - -  -  -  -  -  -   -



// ------------ - - - - - - - - - -  -  -  -  -  -   - Inicio: Cliente (2)  ------------ - - - - - - - - - -  -  -  -  -  -   -


        } else {
            //Cliente 2
            try {
                    while(true){
                        controlador.incrementarCliente();
                        if (controlador.getComprimento() == -9999){
                            System.out.println("Aguardando parametros do primeiro cliente.");
                            JOptionPane.showMessageDialog(null, "Aguardando parametros do primeiro cliente.", "CLIENTE (2)", JOptionPane.INFORMATION_MESSAGE);
                        }               
                        while(true){
                            if (controlador.getComprimento() == -9999){

                            } else {
                                String largura= JOptionPane.showInputDialog(null, "Digite o valor da Largura:", "CLIENTE (2)", JOptionPane.PLAIN_MESSAGE);
                                controlador.setLargura(Float.parseFloat(largura));
                                JOptionPane.showMessageDialog(null, "Valor do Largura: "+controlador.getLargura());

                                    break;

                            }
                        }

                            /*try {

                                 while(true){                       
                                    if (controlador.getAltura() == -9999){

                                    } else {
                                        JOptionPane.showMessageDialog(null,"Valor da área: " + ((controlador.getAltura() * controlador.getLargura()) * controlador.getComprimento());
                                        break;  
                                    }
                                } 


                            }catch (Exception e) {
                                JOptionPane.showMessageDialog(null, "Digite um valor válido! (UM NÚMERO INTEIRO)", "CLIENTE (2)", JOptionPane.ERROR_MESSAGE);
                            }


                        try{
                        String cont2 = JOptionPane.showInputDialog(null, "Deseja continuar? \n Digite 1 para sim \n Digite 0 para não", "CLIENTE (2)", JOptionPane.PLAIN_MESSAGE);
                        controlador.setContinua2(Integer.parseInt(cont2));

                            if (controlador.getContinua2() == 1){
                            }else if (controlador.getContinua2() == 0){
                                break;
                            } else {
                                JOptionPane.showMessageDialog(null,"Valor invalido... saindo", "CLIENTE (2)" , JOptionPane.INFORMATION_MESSAGE);
                                break;
                            }
                        } catch (Exception e){
                            JOptionPane.showMessageDialog(null, "Por favor, entre apenas com números (No caso: 0 ou 1).", "Opção Inválida", JOptionPane.ERROR_MESSAGE);
                        }*/
                    } 

                    } catch (RemoteException re) {
                        System.err.println("Problemas com a chamada remota! " + re);
                        re.printStackTrace();
                        System.exit(3);

// ------------ - - - - - - - - - -  -  -  -  -  -   - Fim: Cliente (2) ------------ - - - - - - - - - -  -  -  -  -  -   -
            }
        }
    }
}
    
asked by anonymous 12.06.2018 / 03:48

0 answers