Erro carregar metodo remoto

pessoal,

to tentando carregar um metodo via rmi e da dando esse pau

java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: Mensagem

   m = this.getNaming("rmi://"+servidorstring+":1099/Service");
          
          int TTL=4;
          int Tipo=1;
          int Tamanho=8;
            Mensagem Men = new Mensagem(localipString,servidorstring,ident,TTL,Tipo,Tamanho,Telefone);
          
            
            try {

// aqui ocorre a excessao
Mensagem aux = m.mandaMensagem(Men);

Faltou implementar a interface java.io.Serializable

[code]public class Mensagem implements Serializable{

}[/code]

so precisa fazer isso?

[code]/*

  • Mensagem.java
  • Created on 5 de Maio de 2006, 21:11
  • To change this template, choose Tools | Template Manager
  • and open the template in the editor.
    /
    import java.io.Serializable;
    /
    *
  • @author Alexandre
    */
    public class Mensagem implements Serializable{

public String EndIpOrigem;
public String EndIpDestino;
public int Ident;
public int TTL;
public int Tipo ;
public int Tamanho;
public String Dados;

/** Creates a new instance of Mensagem */
public Mensagem(String EO, String ED, int ID, int TL, int T, int Tam, String Dad) {

    this.EndIpOrigem=EO;
    this.EndIpDestino=ED;
    this.Ident=ID;
    this.TTL=TL;
    this.Tipo=T;
    this.Tamanho=Tam;
    this.Dados=Dad;
            

}

public Mensagem() {} 

public String getEndIpOrigem() {
    return EndIpOrigem;
}

public String getEndIpDestino() {
    return EndIpDestino;
}

public int getIdent() {
    return Ident;
}

public int getTTL() {
    return TTL;
}

public int getTipo() {
    return Tipo;
}

public int getTamanho() {
    return Tamanho;
}

public String getDados() {
    return Dados;
}



 public void setEndIpOrigem(String End) {
     EndIpOrigem=End;;
}

public void setEndIpDestino(String End) {
     EndIpDestino=End;
}

public void setIdent(int Id) {
     Ident=Id;
}

public void setTTL(int TL) {
     TTL=TL;
}

public void setTipo(int T) {
     Tipo=T;
}

public void setTamanho(int Tam) {
     Tamanho=Tam;
}

public void setDados(String D) {
     Dados=D;
}    

}[/code]
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

Sim!

É bom que você declare um atributo na classe tambem, assim:

private static final long serialVersionUID = 1L;

cara,

quando eu acesso um metodo

via

[code] String ale = "ale";

   String r = m.retorna(ale);
   System.out.println(r);

public String retorna(String r) {

   return("Retornei: "+r);

} [/code]

funciona bem… mas quando eu mando o objeto mensagem

[code] Mensagem Men = new Mensagem(localipString,servidorstring,ident,TTL,Tipo,Tamanho,Telefone);

m.mandaMensagem(Men)[/code]

da nullpointerexception … o que pode ser?
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

Você está tentando acessar uma referencia nula em algum lugar aí, veja a linha onde lança a exceção e o que tem lá, deve ser null