java.rmi.MarshalException:加密

时间:2011-11-12 17:17:18

标签: java exception rmi

当我尝试呼叫远程接口时出现此错误:

java.rmi.MarshalException: error marshalling arguments; nested exception is:    java.io.NotSerializableException: javax.crypto.Cipher

这些是接口:

public interface Operacion extends Remote{

 String operacionDesencripta(byte ciphertext[],Key key,Cipher cipher)
        throws RemoteException;

}

我称之为:

rmiServidor.operacionDesencripta(ciphertext,key,cipher);

处理完所有数据后

1 个答案:

答案 0 :(得分:2)

究竟是什么问题?错误很明显 - 您无法序列化Cipher类型。如果您查看此类型的Javadoc,它会告诉您:

  

为了创建Cipher对象,应用程序调用Cipher   getInstance方法,并传递请求的名称   转变为它。可选地,提供者的名称可以是   指定。

因此,不是直接传递Cipher,而是可以传递转换字符串(String是可序列化的,因此可以“远程”)。