6

私は 1 つのアプレットを開発しましたが、奇妙な動作を見つけています。

これは、GWT、Hibernate、および Spring でビルドされる、実装されたセキュリティ ベースのアプリケーション用です。

アプレットは主にブラウザ証明書にアクセスし、データの暗号化と復号化に使用します。

すべてのシステムで正常に動作していますが、奇妙な動作を見つけているクライアント マシンを 1 つも知りません。

Internet Explorerでログインしたとき。アプレットのロードは次の時点で停止し、自動的に終了します。

アプレット コンソールのエラー:

basic: 進行リスナーを追加: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@337d0f

基本: Plugin2ClassLoader.addURL 親がhttp://phil.etenders.in/securityApplet.jarに対して呼び出されました セキュリティ: ブラックリスト失効チェックが有効になっています セキュリティ: 信頼できるライブラリ リストのチェックが有効になっていますetenders.in/securityApplet.jar、バージョン: null] prevalidated=false/0

ブラックリスト失効チェックと信頼できるライブラリ チェックを削除しましたが、影響はありません。(彼らはうまく通り抜けています)、

http://csis.pace.edu/~bergin/Java/applets.htmからサンプル アプレットを開く と、次の行で停止します。

    basic: Plugin2ClassLoader.isTrustedByPolicy called 
    basic: Plugin2ClassLoader.isTrustedByPolicy returns false 

3 つのブラウザーすべてでの動作。

  1. Firefox と Chrome : まったく読み込まれません。
  2. IE : ヒット リフレッシュをロードすると、初回はロードされません。

詳細が必要な場合はお知らせください。ソースコードこちらから参照してください。

4

2 に答える 2

0

ネットワークの輻輳に関連しています。アプレットの応答が非常に遅い場合があるためJPI_PLUGIN2_NO_HEARTBEAT = 1、システムで環境変数を設定する必要があります。

説明: これにより、ブラウザ側 VM とクライアント JVM インスタンス間のハートビート メッセージの送信が無効になります。これにより、クライアント JVM はブラウザ側の VM から独立したままになります。

根本原因の解決策の参照: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Network+Manager/page/Browser+JRE

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6953754


アップデート:

問題- ブラウザがアプレットを要求すると、システムの JVM との通信が作成されます。デフォルトでは、この通信の有効期間は 10 秒です。指定された時間範囲内で通信できない場合、JVM はそのスレッドを強制終了します。その結果、アプレットの異常な動作が発生します。

解決策- アプレットが正しくロードされないシステムで「環境変数」を設定する必要があります (1 回限りのインストール)。システムの JVM とブラウザの VM の間の 10 秒の応答時間、つまり「ハートビート時間」設定が削除されます。そのシステム環境変数を作成するための実行可能ファイルを作成できます。JVM がこの変数を確実に使用するようにするには、システムを再起動する必要があります。

システム環境変数を設定する方法/場所は?

システム環境変数を設定するには、次の手順に従います。

ステップ 1 : マイ コンピューターのプロパティを開く

ステップ 2 : Windows 7 では、左側のパネルに [システムの詳細設定] が表示され、ワンクリックで開きます。

ステップ 3 : [Advanced] タブに移動していない場合は、[Advanced] タブに移動します。

Step4 : 下部にある [環境変数...] ボタンをクリックすると、ダイアログ ボックスが開きます。

Step5 : 「システム変数」フレームを見つけて、新しい項目を作成します。

Step6 : 変数名を "JPI_PLUGIN2_NO_HEARTBEAT" (引用符なし)、変数値を "1" [one] (引用符なし) として指定します。

ステップ 7 : [OK]をクリックします。

Step8 : [OK]をクリックします。

Step9 : [OK]をクリックします。

Step10 : システムを再起動します。

回答で提供されているリンクを使用することもできます...Javaのバグ解決のために..

于 2013-09-08T10:28:12.207 に答える