Boa Noite,
Estou fazendo um trabalho da faculdade, e o processor pediu para fazer a replicação no servidor.
Ele disse que pode ser qualquer informação, não necessariamente precisa fazer parte do sistema.
Desde já obrigado a todos.
Segue classe 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;
Servidor2 server2=null;
// ------------ - - - - - - - - - - - - - - - - Inicio: Escolha de Servidor ------------ - - - - - - - - - - - - - - - -
Object[] servidor = { "Servidor 1", "Servidor 2" };
Object opcao = JOptionPane.showInputDialog(null, "Qual servidor?", "Servidores", JOptionPane.QUESTION_MESSAGE,
null, servidor, servidor[0]);
/* ESCOLHA DO SERVIDOR */
try {
if (opcao == servidor[0]) {
controlador = (Interface) Naming.lookup("//localhost/rmi");
controlador.setCont();
System.out.println(controlador.getCont());
// JOptionPane.showMessageDialog(null, "Conectado ao servidor 1.");
} else if (opcao == servidor[1]) {
controlador = (Interface) Naming.lookup("//localhost/srv");
controlador.setCont();
System.out.println(controlador.getCont());
// JOptionPane.showMessageDialog(null, "Conectado ao servidor 2.");
}
} catch (Exception e) {
System.err.println("Erro: " + e);
e.printStackTrace();
}
// ------------ - - - - - - - - - - - - - - - - Fim da Escolha de Servidor ------------ - - - - - - - - - - - - - - - -
// ------------ - - - - - - - - - - - - - - - - Inicio do Cliente 1 ------------ - - - - - - - - - - - - - - - -
int mensagem = 0;
while (controlador.getCont() < 2) {
if (mensagem < 1) {
JOptionPane.showMessageDialog(null, "Aguardando conexão do outro Cliente", "Menssagem", JOptionPane.WARNING_MESSAGE);
System.out.println("Aguardando conexão do outro cliente.");
}
mensagem = 1;
}
if(controlador.clientRole() == 0){
try {
while(true) {
controlador.incrementarCliente();
String comp = JOptionPane.showInputDialog(null, "Digite o comprimento do paralelepípedo: ", "CLIENTE 1", JOptionPane.PLAIN_MESSAGE);
controlador.setComprimento (Float.parseFloat(comp));
//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.WARNING_MESSAGE);
while(true) {
if(controlador.getLargura() == -9999) {
} else {
String altura = JOptionPane.showInputDialog(null, "Digite o valor da altura do paralelepípedo: ", "CLIENTE 1", JOptionPane.PLAIN_MESSAGE);
controlador.setAltura(Float.parseFloat(altura));
//JOptionPane.showMessageDialog(null, "Valor da altura: "+controlador.getAltura());
break;
}
}
while(true) {
if(controlador.getLargura() == -9999 ) {
}else {
JOptionPane.showMessageDialog(null,"Cliente 1 digitou o Comprimento "+controlador.getComprimento()+" e a altura "+controlador.getAltura()+" e o valor do volume do paralelepípedo é "+controlador.getCalcula(), "CLIENTE 1" , JOptionPane.INFORMATION_MESSAGE);
break;
}
}
try {
controlador.resetar();
break;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Digite um valor válido! ", "CLIENTE 2", JOptionPane.ERROR_MESSAGE);
}
/* 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 do Cliente 1 ------------ - - - - - - - - - - - - - - - -
// ------------ - - - - - - - - - - - - - - - - Inicio do Cliente 2 ------------ - - - - - - - - - - - - - - - -
} else {
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.WARNING_MESSAGE);
}
while(true){
if (controlador.getComprimento() == -9999) {
}else{
String largura = JOptionPane.showInputDialog(null, "Digite a largura do paralelepípedo: ", "CLIENTE 2", JOptionPane.PLAIN_MESSAGE);
controlador.setLargura(Float.parseFloat(largura));
//JOptionPane.showMessageDialog(null, "Valor da largura: " +controlador.getLargura());
System.out.println("Aguardando ultimo valor para ecibição do resultado .");
JOptionPane.showMessageDialog(null, "Aguardando ultimo valor digitado pelo cliente 1 para exibição do resultado ", "CLIENTE (2)", JOptionPane.WARNING_MESSAGE);
break;
}
}
while(true) {
if(controlador.getAltura() == -9999) {
} else {
//JOptionPane.showMessageDialog(null,"Cliente 2 digitou a largura "+controlador.getLargura()+" e o valor do volume do paralelepípedo é "+(controlador.getComprimento() * controlador.getLargura()* controlador.getAltura()), "CLIENTE 2" , JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,"Cliente 2 digitou a largura "+controlador.getLargura()+" e o valor do volume do paralelepípedo é "+controlador.getCalcula(), "CLIENTE 2" , JOptionPane.INFORMATION_MESSAGE);
break;
}
}
try {
controlador.resetar();
break;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Digite um valor válido! ", "CLIENTE 2", JOptionPane.ERROR_MESSAGE);
}
} while(true);
/* try {
String cont2 = JOptionPane.showInputDialog(null, "Deseja continuar? \n Digite 1 para sim \n Digite 0 para não", "CLIENTE 1", JOptionPane.PLAIN_MESSAGE);
controlador.setContinua2(Integer.parseInt(cont2));
if (controlador.getContinua2() == 1){
}else if (controlador.getContinua2() == 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);
//JOptionPane.showMessageDialog(null,"O Cliente 1 informou o valor: " +controlador.getComprimento()+ " de comprimento e o valor " +controlador.getLargura()+ " e o volume do paralelepipedo será: " +controlador.getAltura() * controlador.getComprimento() * controlador.getLargura(), "CLIENTE 1" , JOptionPane.INFORMATION_MESSAGE);
//JOptionPane.showMessageDialog(null,"O Cliente 2 informou o valor: " +controlador.getLargura()+ " de altura e o valor do volume do paralelepipedo será: " +controlador.getAltura() * controlador.getComprimento() * controlador.getLargura(), "CLIENTE 2" , JOptionPane.INFORMATION_MESSAGE);
//------------ - - - - - - - - - - - - - - - - Fim: Cliente (2) ------------ - - - - - - - - - - - - - - - -
}
}}
}