애플릿에 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에서만 나타납니다. 자바 플러그인은 다음과 같습니다 시스템 (애플릿을로드)에있는
1. 로그인 :
Java Plug-in 1.6.0_20
Using JRE version 1.6.0_20-b02 Java HotSpot(TM) Client VM
직접 시나리오는을 다음과 같다.
2. 로그 아웃합니다 (애플릿을 닫지 만 브라우저 창이 계속됩니다).
3. 주소 표시 줄을 클릭하고 Enter 키를 누릅니다.
4. 애플릿이로드되지 않고 Java 콘솔에서 ClassNotFoundException
을 볼 수 있습니다.
5. 페이지 새로 고침 - 서버가 로그인 페이지로 리디렉션됩니다. 로그인 한 후 애플릿이 다시로드되지 않고 예외가 발생합니다.
Apache 액세스 로그를 보면 4 단계에서 브라우저 (또는 플러그인)가 jar 파일을로드하려고 시도하고 HTTP 오류가 발생 함이 입증되었습니다. 세션이 만료되었으므로 OK입니다. 이상한 일은 5 번째 포인트에서 발생합니다 - 항아리에 대한 요청이 없습니다! 브라우저 또는 플러그인이 실패한 시도를 기억하고 jar 파일을로드하려고 시도조차하지 않는 것 같습니다. 서버에없는 원시 .class 파일 만로드하려고 시도합니다.
내 결론이 맞습니까? 그러한 오류를 어떻게 처리 할 수 있습니까? Java Plugin이 jar 파일을로드하도록 강제 할 수 있습니까?
Java 제어판에서 캐싱을 활성화해도 도움이되지 않습니다. 매개 변수를 "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