Ae galerinha tava discutindo c o Cococtas 1 pau q ta dando aki c/ 1 teste q tofazendo c RMI, rodamos d+ ja e nd, espero q alguem me ajude e conserte.
O pau q ta dando eh qnd rodo o servidor, a excecao eh esta:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: rmiApp.ServicoDeMensagens_Stub
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at rmiApp.Servidor.main(Servidor.java:10)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: rmiApp.ServicoDeMensagens_Stub
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: rmiApp.ServicoDeMensagens_Stub
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:430)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1538)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
... 9 more
To fazendo td direitin:
1- escrever interface remota
2- implementar obejto q implementa a interface
3- implementar servidor q registra o nome do objeto
4- gerar stub (e skel)
5- implementar cliente q peskisa o nome do objeto
6- iniciar rmi registry (start rmiregistry)
7- iniciar servidor *** dar pau aki (excecao mostrada) ***
8- inciar cliente
Os codigos:
interface remota
package rmiApp;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Mensagem_IF extends Remote {
public String getMensagem() throws RemoteException;
public void setMensagem(String mensagem) throws RemoteException;
}
objeto q implementa a interface
package rmiApp;
import rmiApp.Mensagem_IF;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class ServicoDeMensagens extends UnicastRemoteObject implements Mensagem_IF {
private String mensagem = "Não há nenhuma mensagem";
public ServicoDeMensagens() throws RemoteException {}
public String getMensagem() throws RemoteException {
return this.mensagem;
}
public void setMensagem(String mensagem) throws RemoteException{
this.mensagem = mensagem;
}
}
servidor q registra o ServicoDeMensagens
package rmiApp;
import java.rmi.Naming;
public class Servidor {
public static void main( String[] args ){
try {
Mensagem_IF servidor = new ServicoDeMensagens();
Naming.rebind("servidormsg", servidor);
System.out.println("Servidor de mensagens no ar.");
} catch (Exception e ) {
e.printStackTrace();
}
}
}
cliente q busca o servico
package rmiApp;
import java.rmi.Naming;
public class Cliente {
public static void main( String[] args ){
try {
Mensagem_IF obj = (Mensagem_IF) Naming.lookup("rmi://localhost/servidormsg" );
System.out.println("Recebido:" + obj.getMensagem());
obj.setMensagem("Bom dia!");
} catch (Exception e ) {
e.printStackTrace();
}
}
}
Alguem sabe oq eh isso? Ja tentei td e n roda e axo q ta td certo!!! 
