У меня есть апплет, который имеет кнопку logout"
. Кнопка завершает сеанс, вызывая скрипт CGI, а затем убивает Java VM, вызывая System.exit()
. Проблема заключается в том, когда пользователь пытается войти снова в том же окне браузера - апплет не загружается с 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. Это нормально, потому что сеанс истек. Странная вещь происходит в 5-м пункте - нет запроса на баночки! Кажется, что браузер или плагин запоминает неудачные попытки и даже не пытается загрузить файлы jar. Он только пытается загрузить исходный файл .class, которого нет на сервере.
Является ли мое заключение правильным? Как я могу справиться с такой ошибкой? Можно ли заставить Java-плагин загружать файлы jar?
Я проверил, что включение кэширования в панели управления Java не помогает. Установка параметра codebase_lookup
на "false"
тоже не помогает. Это предотвращает попытку напрямую загрузить файл "class"
.
Заранее благодарим за любые предложения.
Ваша ошибка выглядит как что-то, что пыталось загрузить класс с именем 'lucent.fm.parts.BlankPage.class', который является нелегальным именем класса (это должно быть' lucent.fm.parts.BlankPage', я полагаю) , Вопрос в том, почему ваш браузер/плагин пытается загрузить этот класс? –
Это потому, что страница HTML: ; Я могу изменить его на BlankPage вместо BlankPage.class, но это не поможет. Согласно официальной документации, имя класса должно иметь суффикс «.class»: http://download.oracle.com/javase/6/docs/technotes/guides/plugin/developer_guide/using_tags.html – pkalinow