读取存储为jar文件中的对象的java.security.key

时间:2010-05-09 16:01:48

标签: jar public-key

我使用ObjectOutputStream将PublicKey实例保存在一个文件中。然后将该文件存储在一个jar文件中,然后由JBoss加载。我正在尝试读取此文件,但它会抛出一个异常,告诉它不可序列化。 这是代码:

InputStream input = KeyLoader.class.getClassLoader()。getResourceAsStream(resource); ObjectInputStream objectInputStream = new ObjectInputStream(input); Object obj = objectInputStream.readObject(); 键输出=(键)obj; objectInputStream.close(); 返回输出;

这引发了我的异常 发生异常:java.io.NotSerializableException

1 个答案:

答案 0 :(得分:0)

我不确定jar文件中的序列化/反序列化,但是 我无法看到你的其余代码,我可以说几件事:

  1. 确保您尝试序列化/反序列化的所有类都实现Serializable。
  2. 如果您不能执行数字1,那么您可能会尝试获取Key对象的编码形式,例如key.getEcnoded(),这将允许您使用键的字节进行输入/输出。 / LI>

    修改 我不是很熟悉JBoss,但可能尝试使用JBossObjectInputStream和JBossObjectOutputStream(org.jboss.serial.io)。您还必须将jboss-serialization.jar添加到类路径中。见link

    另外,我之前从未做过这类事情,但是如果你认为jar文件很复杂,你应该能够使用java.util.jar包中的一些类来简化IO操作与jar文件。

    我希望这会有所帮助。