0

これがシナリオです。JAVAアプレットを作成しました。これには、独自のコード以外に、いくつかの解凍されたサードパーティのJARからのクラスが含まれています。アプレットに署名すると、クライアントで正常に実行されます。クライアントの多くが帯域幅の狭いネットワーク上にあるため、現在、アプレットを小さくしようとしています。だからpack200パッキングは私が見ているものです。

問題:

pack200でパッキングするための手順は基本的に

  1. アプレットJARを再パック(pack200 utilを使用)して正規化する
  2. 証明書を使用してアプレットJARを辞任する
  3. アプレットJARをpack200utilでパックします

十分に単純で、このプロセス中にエラーは発生しません。ただし、クライアントでこの新しいパックされたアプレットを受信すると、サードパーティのJARに含まれるクラスでSHA1ダイジェストエラーが発生します。

サードパーティのJARは独自のJARにバンドルされておらず、解凍されてクラスがアプレット(単一のJAR)にコピーされます。

このプロセスは、外部JAR:sからのクラスを含む別のアプレットで機能するため、プロセスは正しく行われたと思います。サードパーティのJARがすでに署名されていることと関係があるのではないかと思いますが、アプレットに署名して最初から実行できるので、よくわかりません。

私が見逃したものはありますか?私は署名の専門家ではないことを認めます。そのため、私が望むように物事が機能するのを妨げる明らかなことがあるかもしれません。

4

1 に答える 1

0

解決策を見つけました。上記の pack200 へのリンクにはバグレポートが含まれています。ただし、提案された2番目の回避策を使用すると、うまくいくようです。

于 2013-10-11T18:00:23.200 に答える