2

JDBC/Mysql ドライバーを使用してローカルホストのデータベースにアクセスする署名付きアプレットがあります。

すべて正常に動作しますが、アプリケーションに署名済みコードと未署名コードの両方が含まれているという迷惑な警告ダイアログが毎回ユーザーに表示されます。

Java コントロール パネルの [詳細設定] タブに移動し、[トレースを有効にする]、[ログを有効にする]、[アプレット ライフサイクルの例外を表示する] にチェックを入れ、Java コンソールで 5 を押してすべてのログを表示しました。

その後、次のエラーが見つかりました。

class "com.mysql.jdbc.LocalizedErrorMessages" does not match trust level of 
    other classes in the same package

私のマニフェストファイルでLocalizedErrorMessages.propertiesは、署名されていることがわかります(LocalizedErrorMessages.classマニフェストにもライブラリにもありません)

Name: com/mysql/jdbc/LocalizedErrorMessages.properties
SHA1-Digest: R1EZP+ilj5TImxZLeilYeyh3VBc=
4

1 に答える 1

3

このエラーは、パッケージが 2 回署名された場合に発生することがわかっています (これが主な理由です)。これを修正する最も簡単な方法は、すべての署名を取り除き、コードに新たに署名することです。

..警告ダイアログ。アプリケーションに署名済みコードと未署名コードの両方が含まれていることを示しています。

背景と修正については、署名付きコードと署名なしコードの混合を参照してください。

于 2012-06-03T09:19:53.413 に答える