java.rmi.MarshalException:加密

当我尝试调用一个远程接口我得到这个错误:

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

处理所有的数据后

--------------解决方案-------------

究竟是什么问题? 该错误是相当明确的-你不能序列化Cipher类型。 如果你对这种类型检查出的Javadoc,它会告诉你:

为了创建Cipher对象,应用程序调用该Cipher的getInstance方法,并通过所要求的改造,它的名字。 任选地,可以指定一个提供者的名称。

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

分类:java的 时间:2015-03-15 人气:0
本文关键词: Java中,例外,RMI
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.269 (s). 10 q(s)