0

ObjectOutputStream を使用して PublicKey インスタンスをファイルに保存しました。このファイルは JBoss によってロードされる jar ファイル内に保存されます。このファイルを読み込もうとしていますが、シリアル化できないという例外がスローされます。コードは次のとおりです。

InputStream 入力 = KeyLoader.class.getClassLoader().getResourceAsStream(resource); ObjectInputStream objectInputStream = new ObjectInputStream(input); オブジェクト obj = objectInputStream.readObject(); キー出力 = (キー) obj; objectInputStream.close(); 出力を返します。

これにより、この例外がスローされます例外が発生しました: java.io.NotSerializableException

4

1 に答える 1

0

jar ファイル内からのシリアライゼーション/デシリアライゼーションについてはよくわかりませんが、コードの残りの部分を見ることができなくても、いくつか言えることがあります。

  1. シリアル化/逆シリアル化しようとしているすべてのクラスが Serializable を実装していることを確認してください。
  2. 番号 1 を実行できない場合はkey.getEcnoded()、キーのバイトを使用して入出力を実行できるようにする、 などのエンコードされた形式の Key オブジェクトを取得してみてください。

編集: JBoss にはあまり詳しくありませんが、JBossObjectInputStream と JBossObjectOutputStream (org.jboss.serial.io) を試してみてください。jboss-serialization.jar をクラスパスに追加する必要もあります。リンクを参照

また、私はこれまでこのようなことをしたことがありませんが、jar ファイルが複雑になっていると思われる場合は、java.util.jarパッケージ内のいくつかのクラスを使用して、jar ファイルを使用した IO 操作を簡素化できるはずです。

これが何らかの形で役立つことを願っています。

于 2010-05-09T16:11:37.067 に答える