2009-07-23 1 views
9

最近、2人のクライアントからアプレットに関する問題が報告されました。 Javaプラグイン・コンソールを見ると、ClassNotFoundExceptionでいっぱいになり、コードは実行されません。アプレットの読み込みの問題をデバッグ/ログ/トレースするには?

私は、ディスク上の空き領域が0の仮想PCイメージを使用してスタックトレースを再現できましたが、ディスクスペースをいくつか復元すると問題が解消され、彼らは新しいファイルを作成することができます。

アプレットにはJava 6が必要です。この問題は、jreの更新1、10、および14で発生しています。また、ブラウザとJavaキャッシュをクリアして、さまざまなブラウザ(IEとFirefox)を試してみました...

jvmがアプレットを読み込む方法をデバッグする方法は?

問題はWindows上のセキュリティディレクティブにあると考えています。そのため、Sysinternalのプロセスモニタを使用してアクティビティを記録していますが、実際にどこを見ているのかわかりません。

答えて

0

私はJDKのプラグインソースを見ていますが、環境変数を設定してログに追加のデバッグ情報があることがわかりました。 残念ながら私はまだClassNotFound例外が表示されます。

私はすべての例外を飲み込んだプラグインのコードの一部を見つけたので、多分私のユーザーに問題がある...

6

Javaキャッシュが混乱する可能性が最も高いです。コントロールパネルのJavaを開き、すべての一時ファイルを取り除いて、それがなくなるかどうかを確認します。

Javaコンソールでアプレットの読み込みを有効にすると、(プラグインが極秘であっても)非常に役立ちます。 http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/tracing_logging.html

+0

ありがとうございます!ディスクの完全なテスト環境でトレースを有効にするのを忘れてしまった。 これで試しましたが、 'java.io.IOException:書き込みエラー'しか表示されません。 書き込みしようとしていたパスやエラーの原因は何もないので、クライアントPC上でトレースを有効にすると十分な情報が得られないと思います。 これはJVMから取得できる最大のトレースですか? – Serxipc

+0

Javaキャッシュを消去するとユーザーが助けられましたか? –

+0

いいえ。私たちは既に、Javaコントロールパネルからjavaキャッシュを消去し、すべてのjar_cache * .tmpファイルをtempディレクトリから削除しようとしました。私はそれがいくつかのウィンドウまたはネットワークセキュリティの指示であると思いますが、どこで続行するのかわからないので、何が起きているのかの詳細なログを取得しようとしています。 – Serxipc

0

は、しばらく前に同様の問題を抱えていました。私たちの場合、問題はアプレットタグがウェブページ上でどのように設定されているかのようです。それが間違った順序であるか、またはcodebase属性を含む場合、6u10 +で失敗します。これは私たちのために働きます:

<applet name="DMGANTT" archive="DMGantt.zip" code="dm.applet.DMGanttApplet" 
width='100%' height='100%' mayscript="mayscript"> 
+0

私はアプレットタグを書き込むためにdeployJava.jsスクリプトを使用していますが、codebase属性は追加しません。 属性の順序が間違っていますか?順序が間違っているために失敗した例がありますか? – Serxipc

+0

はい、コードの順序を変更してアーカイブすると、何らかの形で6u10がサーバー上のDMGanttAppletを検索し、提供されたアーカイブでは検索しません。どのクラスが欠落していますか?エラーのスタックトレースは何ですか? – akarnokd

+0

属性の順序であなたの提案を試みましたが、問題は解決しません。スタックトレースに見つからないクラスはcode属性で指定されたクラスであるため、何も実行されません。サーバーログで、クラスのjarが要求されていることがわかります。実際、jarファイルはページにあるアプレットと同じ回数だけ要求されますが、動作しているPCからページを表示するときは、一度しか要求されません。 – Serxipc

0

我々のクライアントと同様の問題がありました。私たちは、クライアント上のプロキシ設定に関連するJavaのいくつかのバージョンでは奇妙なバグであることを発見しました。また

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

に詳細については、こちらの記事を参照してください、私たちのアプレットは別の理由のための新しいバージョンで失敗しました。

類似のケースでは、javatester.orgをチェックして、アプレット(一般的に)がブラウザにOKを表示するかどうかを確認するように依頼します。そのページがOKをロードすると、アプレット(またはページ)の問題です。それ以外の設定では問題になります。とにかく私はそれらを助けるが、デバッグする方が簡単だ。