私はlogout"
ボタンを持つアプレットを持っています。ボタンはCGIスクリプトを呼び出してセッションを終了し、System.exit()
を呼び出してJava VMを終了します。ユーザーが同じブラウザウィンドウで再度ログインしようとすると問題がある - アプレットはClassNotFoundException
でロードに失敗:JavaアプレットがInternet Explorerで再読み込みに失敗する
load: class lucent/fm/parts/BlankPage.class not found.
java.lang.ClassNotFoundException: lucent.fm.parts.BlankPage.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://example.com/html/lucent/fm/parts/BlankPage/class.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Exception: java.lang.ClassNotFoundException: lucent.fm.parts.BlankPage.class
それは、Internet Explorerだけでなく、Firefoxで表示されます。 Javaのプラグインは次のとおりです。
Java Plug-in 1.6.0_20
Using JRE version 1.6.0_20-b02 Java HotSpot(TM) Client VM
直接シナリオは以下のです:
1.システムにログイン(アプレットをロードします)。
2.ログアウトします(アプレットは終了しますが、ブラウザウィンドウは存続します)。
3.アドレスバーをクリックし、Enterキーを押します。
4.アプレットが読み込まれず、ClassNotFoundException
がJavaコンソールに表示されます。
5.ページを更新する - サーバーはログインページにリダイレクトされます。ログイン後、アプレットは再びロードされず、例外がスローされます。
Apacheアクセスログを見ると、手順4でブラウザ(またはプラグイン)がjarファイルをロードしようとしたときにHTTPエラーが発生することが証明されました。セッションが切れているのでOKです。奇妙なことは5番目の点で起こります - 瓶のための要求はありません!ブラウザやプラグインは失敗した試行を記憶していて、jarファイルを読み込もうとしません。サーバー上に存在しないraw .classファイルのみをロードしようとします。
私の結論は正しいですか?このようなエラーにはどうすれば対処できますか? Javaプラグインにjarファイルをロードさせることは可能ですか?
Javaコントロールパネルでキャッシュを有効にしても有効にならないことが確認されました。 codebase_lookup
パラメータを"false"
に設定することは役に立ちません。 "class"
ファイルを直接ロードしようとしないようにするだけです。
ご意見ありがとうございます。
あなたのエラーは、 'lucent.fm.parts.BlankPage.class'という名前のクラスをロードしようとしたようです。これは不正なクラス名です(' lucent.fm.parts.BlankPage'である必要があります) 。問題は、あなたのブラウザ/プラグインがこのクラスをロードしようとするのはなぜですか? –
これは、HTMLページのためです:; BlankPage.classの代わりにBlankPageに変更することはできますが、それは役に立ちません。 公式の文書によると、クラス名は接尾辞 ".class"である必要があります。http://download.oracle.com/javase/6/docs/technotes/guides/plugin/developer_guide/using_tags.html – pkalinow