Erro carregar metodo remoto

5 respostas
A

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);

5 Respostas

J
java.io.NotSerializableException: Mensagem

Faltou implementar a interface java.io.Serializable

public class Mensagem implements Serializable{

}
A
so precisa fazer isso?
/*
 * 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;
    }    

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

Sim!

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

private static final long serialVersionUID = 1L;
A

cara,

quando eu acesso um metodo

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



 public String retorna(String r) {
       
       return("Retornei: "+r);
   }

funciona bem... mas quando eu mando o objeto mensagem

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


m.mandaMensagem(Men)

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

J

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

Criado 7 de junho de 2006
Ultima resposta 7 de jun. de 2006
Respostas 5
Participantes 2