tenho q criar uma comunicacao entre cliente - servidor pegar o valor recebido pelo servidor e enviar novamente a outro servido, ou seja o meu primeiro servidor se torna cliente e servido. apenas nao estou conseguindo pegar o valor recebido pelo servidor e envia-lo novamente…
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Mensageiro extends Remote
{
public void enviarMensagem( String msg ) throws RemoteException;
public String lerMensagem() throws RemoteException;
}
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class MensageiroImpl extends UnicastRemoteObject implements Mensageiro
{
String valor_recebido;
public MensageiroImpl() throws RemoteException
{
super();
}
public void enviarMensagem( String msg ) throws RemoteException
{
valor_recebido = msg;
System.out.println( msg );
}
public String lerMensagem() throws RemoteException
{
return "This is not a Hello World! message";
}
}
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;
import java.net.MalformedURLException;
public class Sensor extends Thread
{
public void run ()
{
try
{
Mensageiro S1 = (Mensageiro)Naming.lookup(“rmi://127.0.0.1/sensorcontrole”);
System.out.println(S1.lerMensagem());
S1.enviarMensagem(“MSG SENSOR”);
}
catch( MalformedURLException e )
{
System.out.println();
System.out.println( "MalformedURLException: " + e.toString() );
}
catch( RemoteException e )
{
System.out.println();
System.out.println( "RemoteException: " + e.toString() );
}
catch( NotBoundException e )
{
System.out.println();
System.out.println( "NotBoundException: " + e.toString() );
}
catch( Exception e )
{
System.out.println();
System.out.println( "Exception: " + e.toString() );
}
}
}
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;
import java.net.MalformedURLException;
public class Controle extends Thread
{
String mensagem;
public Controle() //recebendo
{
try
{
Mensageiro C1 = new MensageiroImpl();
Naming.rebind(“rmi://127.0.0.1:1099/sensorcontrole”,C1);
/o meu problema é quero pegar esse valor recebido e mandar pro atuador, mas nao estou conseguindo/
}
catch(Exception e)
{
System.out.println("Error Controle: " + e);
}
try
{
Mensageiro AT1 = (Mensageiro)Naming.lookup("rmi://127.0.0.1/controleatuador");
System.out.println(AT1.lerMensagem());
AT1.enviarMensagem(valor.valor_recebido);
}
catch( MalformedURLException e )
{
System.out.println();
System.out.println( "MalformedURLException: " + e.toString() );
}
catch( RemoteException e )
{
System.out.println();
System.out.println( "RemoteException: " + e.toString() );
}
catch( NotBoundException e )
{
System.out.println();
System.out.println( "NotBoundException: " + e.toString() );
}
catch( Exception e )
{
System.out.println();
System.out.println( "Exception: " + e.toString() );
}
}
public void run(String[] args)
{
new Controle();
}
}
public class Atuador extends Thread
{
public Atuador()
{
try
{
Mensageiro server_controle = new MensageiroImpl();
Naming.rebind(“rmi://127.0.0.1:1099/controleatuador”,server_controle);
}
catch(Exception e)
{
System.out.println("Error Controle: " + e);
}
}
public void run(String args[])
{
new Atuador();
}
}