Pessoal, estou estudando RMI usando o livro USE A CABEÇA o que não deu certo, então fiz o que diz nesse artigo http://www.guj.com.br/articles/37 , porém na hora de executar o MensageiroServer ele exibe a seguinte exceção:
Trouble: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: Mensageiro
Estou utilizando o JDK 7.0
Seguem os códigos:
Interface Mensageiro
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;
}
Classe MensageiroImpl
[code]import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class MensageiroImpl extends UnicastRemoteObject implements Mensageiro {
public MensageiroImpl() throws RemoteException {
super();
}
public void enviarMensagem( String msg ) throws RemoteException {
System.out.println( msg );
}
public String lerMensagem() throws RemoteException {
return "This is not a Hello World! message";
}
}[/code]
Classe MensageiroServer
import java.rmi.Naming;
public class MensageiroServer {
public MensageiroServer() {
try {
Mensageiro m = new MensageiroImpl();
Naming.rebind("rmi://localhost:1099/MensageiroService", m);
}
catch( Exception e ) {
System.out.println( "Trouble: " + e );
}
}
public static void main(String[] args) {
new MensageiroServer();
}
}
Classe MensageiroClient
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;
import java.net.MalformedURLException;
public class MensageiroClient {
public static void main( String args[] ) {
try {
Mensageiro m = (Mensageiro) Naming.lookup( "rmi://localhost/MensageiroService" );
System.out.println( m.lerMensagem() );
m.enviarMensagem( "Hello World!" );
}
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() );
}
}
}
Help me!